提交表单而不重定向

Posted

技术标签:

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

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

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

当前我正在使用隐藏 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 提交表单:***.com/questions/1960240/jquery-ajax-submit-form XHR 我的朋友,又名 Ajax 你能给我一些代码吗? 我有疑问.. 这个表单的方法属性在哪里?有效吗? 【参考方案1】:

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

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

【讨论】:

我正在向第三方提交表单。我无法在 php 中进行更改。 您仍然可以管理它。 isometriks.com/jquery-ajax-form-submission-with-iframes【参考方案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 脚本。

【讨论】:

以上是关于提交表单而不重定向的主要内容,如果未能解决你的问题,请参考以下文章

防止在 Ajax 发布后使用 Javascript 重新提交表单(无重定向)

在rails 5中没有页面刷新和重定向的模态表单提交

我想在提交时创建一个表而不重定向到 php 中的任何其他页面

表单提交后如何在同一个html页面上回显?

提交 HTML 表单,执行 javascript 功能(警报然后重定向)

如何让浏览器保存密码而不重定向?