在我的主页面(main.PHP)上,我有不同形式的链接:form1.PHP,form2.PHP,form3.PHP.我需要在main.PHP的一部分中打开链接的页面,即在main.PHP的div或iframe中打开,而不刷新main.PHP.表单页面可以填充,删除,更新数据库.当我执行这些操作时,我不希望main.PHP刷新,而只需要相应的表单页面.
我的第一个选择是打开form1.PHP,例如在main.PHP的iframe中打开.当我提交表单时,只刷新iframe中的form1.PHP.
我的第二个选择是使用jquery:在main.PHP的div中打开链接(form1.PHP).
在div中提交表单,并仅刷新div.
第二种选择要求更高,因为我对ajax和jquery没有多少经验.第一个选择对我来说更直截了当.
我想知道与iframe相比,使用div刷新的第二个选项是否有任何优势,即与不同浏览器兼容,否则……
谢谢.
解决方法
$("#submit_button_id").click(function(e) { e.preventDefault(); $.post('form.PHP',$("#form_name").serialize(),function(result) { $("#div_id").html(result); } }
这个片段应该有用.
$(“#submit_button_id”).click(function(e){:捕获指定id的click函数并创建一个触发器.
e.preventDefault(); :阻止表单定期提交,我们将通过jquery提交.
$.post以POST方法发送表单.
‘form.PHP’是你的表单控制器,它将返回一个要显示的HTML代码.
(“#form_name”).serialize()此函数是一个用于序列化要发送的表单的实用程序.它加载输入字段并将它们转换为类似{field1:value,field2:value}
function(result){是第3个参数,成功时,$.post将第3个参数作为函数调用.我们创建一个匿名函数来替换我们div的html.
$(“#div_id”).html(result)将指定的div的html设置为结果变量.
参考http://api.jquery.com/,他们有一个很棒的参考表.