我想知道什么更适合我想要实现的目标:
@H_403_2@在我的主页面(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. @H_403_2@第二种选择要求更高,因为我对ajax和jquery没有多少经验.第一个选择对我来说更直截了当.
我想知道与iframe相比,使用div刷新的第二个选项是否有任何优势,即与不同浏览器兼容,否则……
谢谢.
我的第一个选择是打开form1.PHP,例如在main.PHP的iframe中打开.当我提交表单时,只刷新iframe中的form1.PHP.
我的第二个选择是使用jquery:在main.PHP的div中打开链接(form1.PHP).
在div中提交表单,并仅刷新div. @H_403_2@第二种选择要求更高,因为我对ajax和jquery没有多少经验.第一个选择对我来说更直截了当.
我想知道与iframe相比,使用div刷新的第二个选项是否有任何优势,即与不同浏览器兼容,否则……
谢谢.
解决方法
我建议使用jquery,ajax(
XMLHttpRequest). iframe是旧的,不是语义的,您无法访问main.PHP中的iframe.
$(“#submit_button_id”).click(function(e){:捕获指定id的click函数并创建一个触发器. @H_403_2@e.preventDefault(); :阻止表单定期提交,我们将通过jquery提交. @H_403_2@$.post以POST方法发送表单. @H_403_2@‘form.PHP’是你的表单控制器,它将返回一个要显示的HTML代码. @H_403_2@(“#form_name”).serialize()此函数是一个用于序列化要发送的表单的实用程序.它加载输入字段并将它们转换为类似{field1:value,field2:value} @H_403_2@function(result){是第3个参数,成功时,$.post将第3个参数作为函数调用.我们创建一个匿名函数来替换我们div的html. @H_403_2@$(“#div_id”).html(result)将指定的div的html设置为结果变量. @H_403_2@参考http://api.jquery.com/,他们有一个很棒的参考表.
$("#submit_button_id").click(function(e) { e.preventDefault(); $.post('form.PHP',$("#form_name").serialize(),function(result) { $("#div_id").html(result); } }@H_403_2@这个片段应该有用.
$(“#submit_button_id”).click(function(e){:捕获指定id的click函数并创建一个触发器. @H_403_2@e.preventDefault(); :阻止表单定期提交,我们将通过jquery提交. @H_403_2@$.post以POST方法发送表单. @H_403_2@‘form.PHP’是你的表单控制器,它将返回一个要显示的HTML代码. @H_403_2@(“#form_name”).serialize()此函数是一个用于序列化要发送的表单的实用程序.它加载输入字段并将它们转换为类似{field1:value,field2:value} @H_403_2@function(result){是第3个参数,成功时,$.post将第3个参数作为函数调用.我们创建一个匿名函数来替换我们div的html. @H_403_2@$(“#div_id”).html(result)将指定的div的html设置为结果变量. @H_403_2@参考http://api.jquery.com/,他们有一个很棒的参考表.