【问题标题】:Submit a Form without redirecting提交表单而不重定向
【发布时间】:2014-01-15 19:25:06
【问题描述】:

我想提交一个不重定向页面的表单。表单已提交给第三方,因此我无法在 php.ini 中进行更改。 我想做的是:-

  1. 无需访问第三方页面即可提交。
  2. 成功提交后显示提示。

当前我正在使用隐藏 iframe 和表单目标到隐藏 iframe,但我不满意。有没有更好的方法使用 javascript 或 jquery 来做到这一点。

我的表格:-

<form target="iframe" action="http://www.example.com"  type="post" id="myform">
<input type="text" value="" name="name">
<input type="submit" name="submit">
</form>

我的 iframe:-

<iframe style="display:none" id="iframe"></iframe>

【问题讨论】:

  • 如果你需要做的事情,或者显示的只是客户端,你可以使用Javascript,如果你确实需要一些服务器端的操作,你将需要一个回发。
  • 考虑使用异步 JavaScript 和 XML 提交表单:stackoverflow.com/questions/1960240/jquery-ajax-submit-form
  • XHR 我的朋友,又名 Ajax
  • 你能给我一些代码吗?
  • 我有疑问.. 这个表单的方法属性在哪里?有效吗?

标签: javascript jquery html forms iframe


【解决方案1】:

对于这种请求,您需要使用 Ajax。

请看一些教程,例如http://www.w3bees.com/2013/08/submit-form-without-page-refresh-with.html

【讨论】:

【解决方案2】:

将 iframe 的 id 属性更改为 name

<iframe style="display:none" name="iframe"></iframe>

【讨论】:

  • 我在那里编写的代码工作正常。我想知道有没有其他方法可以做到这一点。
【解决方案3】:

你可以在这里使用jquery

 <form  action="http://www.example.com" id="myform">
 <input type="text" value="" name="name">
 <input type="submit" name="submit">
 </form>

在 jquery 之后你写的就像

   // bind to the form's submit event 
    $('#myform').submit(function() { 
     alert("ok");
     return true; 
   }); 

【讨论】:

    【解决方案4】:

    考虑使用 PHP 代理。

    将脚本从here 复制到您自己服务器上您喜欢的任何位置。

    修改第 11 行,使其指向您当前发布到的 URL。
    // Destination URL: Where this proxy leads to.
    $destinationURL = 'http://www.otherdomain.com/backend.php';

    然后在您的 ajax 脚本中,将 URL 更改为您的 proxy.php 脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 2020-07-14
      • 2013-04-13
      • 2021-02-15
      • 2011-12-26
      相关资源
      最近更新 更多