jquery - iframe 与 div + jquery

标签 jquery ajax iframe html

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

在我的主页 (main.php) 上,我有指向不同表单的链接:form1.php、form2.php、form3.php。我需要链接的页面在 main.php 的一部分中打开,即在 main.php 上的 div 或 iframe 中打开,而不刷新 main.php。表单页面可以填充、删除、更新数据库。当我执行这些操作时,我不希望 main.php 刷新,而只刷新适当的表单页面。 我的第一个选择是在 main.php 的 iframe 中打开 form1.php。当我提交表单时,只有 iframe 中的 form1.php 被刷新。 我的第二个选择是使用 jquery:在 main.php 的 div 中打开链接 (form1.php)。 在div中提交表单,只刷新div。

第二个选项要求更高,因为我对 ajax 和 jquery 没有太多经验。第一个选项对我来说更直接。 我想知道与 iframe 相比,将第二个选项与 div 刷新一起使用是否有任何优势,即与不同浏览器的兼容性以及其他...... 谢谢。

最佳答案

我建议使用 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); } }

这段代码应该可以工作。
$("#submit_button_id").click(function(e) { :捕获分配的 id 的点击功能并创建触发器。

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

$.postPOST 方法中发送表单。

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

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

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

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

引用http://api.jquery.com/ ,他们有一份很棒的引用表。

关于jquery - iframe 与 div + jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928700/

相关文章:

具有 id 的可见元素的 jQuery 选择器

jquery - 如何在ajax函数执行过程中显示加载图像?

angularjs - "Failed to execute ' postMessage '"错误来自 Froogaloop 通过 AngularJS 指令

jquery - 当我将 URL 添加到列表,然后使用 ajax 时,我尝试在某些 iframe 中显示列表的内容,页面会自行重新加载

jquery - 将数据从一个输入字段移动到另一个输入字段

javascript - jqPlot 饼图数据标签不显示

javascript - 使用图像数组列表的 simplegallary.js 显示适合桌面屏幕的图像

javascript - 创建 Onload 淡入小部件

javascript - 你如何检查 jquery .html() 变量和 ruby​​ on rails 生成的 html 之间的相等性?

CSS:iframe 内的最小宽度响应