2011-05-26 40 views
0
$("form#update").submit(function() { 
    var formData = $("form#update").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "graph.php", 
      data: formData + "&criteria=" + critSelected, 
      success: function(data){ 
       $('div.graph').fadeOut(function(){$('div.graph').html(data).fadeIn();}); 
      } 
     }); 
    return false; 
}); 

我有这个脚本,响应表单提交。 graph.php将会是一个完整的html页面,我希望在不加载整个页面的情况下显示。有没有什么办法让我在同一页面上将iframe的源代码更改为graph.php(说它在div'图表内部)?我试过放置$('iframe')。attr('src',url);在成功功能上无济于事。帮助表示赞赏。谢谢!使用php页面更新iframe后阿贾克斯后

回答

2

您可以直接使用form.target =“框架名” 比结果将在iframe中加载全自动

例如

<form method="POST" target="framename">...</form> 
+0

是的,这很容易。我将如何创建表单标签?我的目标是iframe,它用graph.php更新它,但它显示它就好像$ _POST数据没有通过。 – meburbo 2011-05-26 19:51:36

+0

@meburbo您是否删除了AJAX? – Dormouse 2011-05-26 19:56:46

+0

Nm,语法错误。谢谢! – meburbo 2011-05-26 19:57:03

1

如果我看到你做了什么设置为iFrame正确地说它不工作的原因是因为你试图使用url作为变量,它是ajax选项中属性的名称。如果您将代码更改为$("iframe").attr("src", "graph.php");它应该工作或设置或者设置url变量。

概念小提琴:http://jsfiddle.net/XcnMt/

+0

说实话,我认为你要找的是zim32的答案。如果您希望表单页面在您的页面中完全加载,则不需要将AJAX内容发布到iframe。 – Dormouse 2011-05-26 19:49:43

+0

是的,它更好。谢谢您的帮助。你有没有看到我对他的回答的回应?有什么建议么? – meburbo 2011-05-26 19:55:23