提交表单而不重定向
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 重新提交表单(无重定向)
我想在提交时创建一个表而不重定向到 php 中的任何其他页面