iframe与div + jquery

JMa*_*arc 8 html ajax iframe jquery

我想知道什么更适合我想要实现的目标:

在我的主页面(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刷新的第二个选项是否有任何优势,即与不同浏览器的兼容性等等...谢谢.

Umu*_*acı 3

我建议使用 jquery、ajax(XMLHttpRequest)。iframe 很旧,没有语义,您无法访问 main.php 中的 iframe。

$("#submit_button_id").click(function(e) {
    e.preventDefault();
    $.post('form.php', $("#form_name").serialize(), function(result) { 
        $("#div_id").html(result); } }
Run Code Online (Sandbox Code Playgroud)

这个片段应该可以工作。
$("#submit_button_id").click(function(e) {:捕获指定id的点击函数并创建触发器。

e.preventDefault();:阻止表单定期提交,我们将通过jquery提交。

$.post在方法中发送表单POST

'form.php'是您的表单控制器,它将返回要显示的 html 代码。

("#form_name").serialize()此函数是用于序列化要发送的表单的实用程序。它加载输入字段并将它们转换为类似的{ field1: value, field2: value }

function(result) {是第三个参数,成功时$.post将第三个参数作为函数调用。我们创建一个匿名函数来替换 div 的 html。

$("#div_id").html(result)将分配的 div 的 html 设置为result变量。

参考http://api.jquery.com/,他们有一个很棒的参考表。