带有Boostrap模式表单的AJAX页面 - 提交不起作用

时间:2018-02-19 21:33:36

标签: php mysql ajax modal-dialog

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

首先简要说明我的设置,以便让我的问题更加清晰。

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

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

  • 在menupont1.php页面上,我得到了一个包含mysql数据的列表。
  • 我为每一行实施了一个“编辑”按钮 - 点击编辑按钮时,会出现一个带有表格的相应数据,并填写相应的数据并准备编辑。
  • 当我现在点击“保存更改”时,POST-Request始终为空。

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

e.g:

   $.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>

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

1 个答案:

答案 0 :(得分:0)

我已经建立了一个如何运作的最小例子:

两个模态的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/