我试图用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被重新加载)等等。
答案 0 :(得分:0)
由于您要序列化在ajax中动态更新的表单,因此您不会第二次工作。
当您动态加载表单元素(如输入)时,jQuery不会序列化。
您的解决方案可以使用JSON对象加载新值,并放入foreach以显示新内容。