你见过吗?
submit a form inside another form
Submitting form data to two locations using Javascript and PHP?
他们都没有真正回答问题。
让我解释一下这个场景。我有一个表格,要求提供姓名、电子邮件和电话号码,需要将其提交到两个不同 vendor 的两个位置。
1) 阿韦伯 2)公司
一种可能性是创建一段 Javascript 代码,当人们点击“提交”时,它会将它发送到两个不同浏览器窗口中的两个表单调用(这是我的首选方法)
第二种可能性是先将其发送到 Aweber (autorespnder),然后将变量传递到自定义 PHP 页面。使用 $_GET 获取变量,然后将它们传递到一个自动提交的表单中,该表单将这些传递到第二个表单,然后发送给公司。
例如 - 我可以先将表单提交给 Aweber,然后将结果传回 form.php:
$name = $_get['name'];
$email = $_get['email'];
$phone = $_get['phone'];
如果使用 Curl 或 javascript,表单的其余部分会是什么样子?
我尝试将变量传递到公司post表单中。它不接受任何 GET 命令 - 它只接受 POST 命令,因此 CURL 可能无法工作,(除非有办法通过 CURL 发布表单?)
谁有一个优雅的解决方案,而且对最终用户来说还不错?
你有什么想法?提前致谢!
最佳答案
在没有任何真实数据可继续或真实表单可调用的情况下,这应该给出了如何使用 AJAX 和 jQuery 完成此操作的基本概念。
*更新
我更新了答案以展示如何将表单变量作为 post 而不是 get 传递。
HTML
<form id="test-form">
<input type="text" id="name" name="name"/>
<input type="submit" value="submit"/>
</form>
<p class="response1">
Response 1 goes here
</p>
<p class="response2">
Response 2 goes here
</p>
jQuery
$("#test-form").on("submit", function(e) {
e.preventDefault(); //stops the form from actually submitting
var root = 'https://jsonplaceholder.typicode.com';
$.ajax({
url: root + '/posts/1',
method: 'POST',
data: $("#test-form").serialize()
}).then(function(data) {
if(data) {
$(".response1").text(data.title);
$.ajax({
url: root + '/posts/2',
method: 'POST',
data: $("#test-form").serialize()
}).then(function(data) {
if(data) {
$(".response2").text(data.title);
}
});
}
});
})
显然,您必须正确设置 URL 并传递发布数据,这在此处不会发生,因为我没有用于查询接受发布数据的 API。第一个表单提交后,它将数据发送到第二个表单。您如何处理数据将取决于服务器的响应。
关于javascript - PHP Javascript 单一表单调用提交到两个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40687358/