繁体   English   中英

jQuery ajax和php iframe。 表单目标问题

[英]jQuery ajax and php iframe. Form target issue

这是日常问题。 =)

用例和问题描述:

  1. 我正在通过jQuery $ .ajax({...})提交表单
    • Ajax post调用触发由php完成的SQL插入。
    • SQL查询已成功执行,可以在数据库上检查。
  2. 用于显示结果的iframe 没有得到更新
    • 附加到表单的原始按钮已使用target =“ id_of_iframe” *
  3. 发布目标位于相同的URL,相同的目标(my_iframe)

所以,

  • 如何使用$ .ajax发布的结果数据更新iframe?

  • 我应该添加其他控件吗?

  • 是否有其他符合iframe标准且可编辑的帖子数据提交表单的方法?

提前感谢大家,祝您编码愉快:)

编码:

的HTML

<html>
  <head>
    ...
  </head>
  <body>
    <!--the iframe -->
    <iframe src ="iframe.php" 
      class="my_iframe" id="my_iframe" 
      name="my_iframe" frameborder="0" allowtransparency="true">
    </iframe>
    <!--the form -->
    <form id="my_form" action="iframe.php" 
     method="post" target="my_iframe">
       <!-- some input fields -->
       <button onclick="my_function"></button>
    </form>
  </body>
</html>

JAVASCRIPT-JQUERY

function my_function(){
   var my_data = .../*go collect form data*/
   $.ajax({
     type: "POST",
     url: "iframe.php",
     data: my_data,
     success:function(response){
         $("#my_frame").html(response);
     }
   });
}

部分结果:

  1. chrome控制台记录有关jquery.min.js:4的警告

不赞成在主线程上使用同步XMLHttpRequest,因为它会对最终用户的体验产生不利影响。 如需更多帮助,请访问https://xhr.spec.whatwg.org/

  1. 一些CSS出现错误,并且更改了字体/字体粗细

PS在ajax.success函数中,我尝试了这种替代方法,但问题是相同的:

$('#my_iframe').append(result);

要更新iframe,您可以像这样更新它的src属性:

$('iframe#my_iframe').attr('src', 'iframe.php');

把它放在你的ajax success回调中。 并且iframe将重新加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM