AJAX PHP - 提交后重新加载div

时间:2015-06-08 17:31:05

标签: php jquery ajax

我试图用jquery和ajax重新加载一个select,我提交一个新条目后必须重新加载,现在我到了这一点。

$("form").on("submit", function (e) {
    e.preventDefault();
    var form_id = $(this).attr('id');
    var form_details = $('#' + form_id);
    $.ajax({
        type: "POST",
        url: 'Users.php',
        data: form_details.serialize(),
        success: function (data) {
            $('#check_data').html(data);
            $('#div_to_update').load('my_page.php #div_to_update');
        }
    }
});

要重新加载的div有一个由PHP代码生成的html选项,其他字段只是简单的html:

这是第一个表单,必须使用我在form2中输入的值重新加载:

<div id="div_to_update">
    <form id="form1">
        <?php Helper::combo_users(); ?>
        /*
        ...
       */
    </form>
</div>

这是表格2:

<form id="form2" method="post">
    <input type="text" id="user_reg" name="user_reg"/>
    <input type="text" id="user_name" name="user_name"/>
    <input type="submit" value="Add"/>
</form>

奇怪的是,这段代码将第一次运行ok(我输入form2中的值并发送,form1将使用新值重新加载),但第二次它不起作用(当我点击提交时在form2上似乎没有任何事情发生)并且第三次它将再次工作(再次单击提交按钮并且值被发送并且表单1被重新加载)等等。

1 个答案:

答案 0 :(得分:0)

由于您要序列化在ajax中动态更新的表单,因此您不会第二次工作。

当您动态加载表单元素(如输入)时,jQuery不会序列化。

您的解决方案可以使用JSON对象加载新值,并放入foreach以显示新内容。