php - 带有 Bootstrap 模态表单的 AJAX 页面 - 提交不起作用

标签 php mysql ajax modal-dialog

我搜索了很多关于这个问题的信息,但还没有找到解决方案。

首先是关于我的设置的简短描述,以使我的问题更清楚。

  • 带有菜单的Settings.php页面,您可以在其中选择不同的设置类别
  • 通过单击一个菜单点,相应的菜单点将通过 ajax 加载并显示。

$('#content').load("http://"+ document.domain + "/domainhere/settings/menupoint1.php");

  • 在menupont1.php页面上我得到了一个包含mysql数据的列表。
  • 我为每一行实现了一个“编辑”按钮 - 单击编辑按钮时,会出现一个 boostrap 模式,其中包含一个表单以及已填写并准备编辑的相应数据。
  • 当我现在点击“保存更改”时,POST 请求始终为空。

为了实现表单提交,我已经尝试了几个代码:

例如:

   $.ajax({
        type: "POST",
        url: "php/form-process.php",
        data: "name=" + name + "&email=" + email + "&message=" + message,
        success : function(text){
            if (text == "success"){
                formSuccess();
            }
        }
    });

$(function(){
    $('#editform').on('submit', function(e){
        e.preventDefault();
        $.ajax({
            url: url, //this is the submit URL
            type: 'GET', //or POST
            data: $('#editform').serialize(),
            success: function(data){
                 alert('successfully submitted')
            }
        });
    });
});

目前:

while($xy= $xysql->fetch_assoc()) {
<div class="modal fade" id="edit-<?php echo $xy["id"] ?>" [..]>
<button id="submit>" class="btn btn-default">Save</button>
</div>

<script>
                     $(function() {
                        $('button#submit').click(function(){
                                $.ajax({
                                type: 'POST',
                            url: './test2.php',
                            data: $('form#modal-form').serialize(),
                                success: function(msg){
                                        $('#test').html(msg)
                                    $('#form-content').modal('hide');   
                                    },
                            error: function(){
                                alert('failure');
                                }
                                });
                        });
                    });
                    </script>

也许这里有人可以帮我解决这个问题? 非常感谢:)

最佳答案

我已经设置了一个最小的示例来说明这是如何工作的:

两个模式的示例 html,在您的情况下在循环中生成。 我现在已经在没有唯一 ID 的情况下完成了它,但通过类进行选择。

<div class="modal">
          <!-- // this classname is new and important -->
   <form class="editform">
     <input name="test" value="value1">
     <button class="btn btn-default">Save</button>   
   </form>
</div>

<div class="modal">
   <form class="editform">
     <input name="test" value="value2">
     <button class="btn btn-default">Save</button>   
   </form>
</div>

你的 JavaScript 应该是这样的:

$(function() {
   var formsAll = $('.editform');
                          // changed this to onSubmit, because it's easier to implement the preventDefault!
   formsAll.on('submit',function(e){
       e.preventDefault();
       var formData = $(this).serialize();
       console.log(formData);
       // add your ajax call here.
       // note, that we already have the formData, it would be "data: formData," in ajax.

   });
});

请注意,我没有您真正的 html 结构,因此详细信息可能会有所不同。但你明白了。

也可以在这里找到: https://jsfiddle.net/a0qhgmsb/16/

关于php - 带有 Bootstrap 模态表单的 AJAX 页面 - 提交不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48874505/

相关文章:

php - 重定向到 Flask 中的 PHP 文件

php - 链接页面的数学方程式

php - 定义随机数的百分比

php - 谷歌地图API信息窗口多个标记,同一位置

php - mysql:ROLLUP on TOP,SUM(FINANCIAL AMOUNT),然后按DATETIME DESC排序FINANCIAL AMOUNT列

javascript - Mocha 测试用 .then stub 了 ajax 调用

jquery - ajax请求抛出405方法未找到错误(Laravel 5)

php - 从数据库创建并获取新 ID 但尚未提交 CodeIgniter

mysql - 如何理解 sql server 上的 session ?

jquery - 在.ajax调用中,是异步的: true assumed by default?