2016-11-18 24 views
4

你见过吗?
submit a form inside another formPHP Javascript Single Form Call提交两种形式

Submitting form data to two locations using Javascript and PHP?

他们没有真正回答这个问题。

让我来解释一下这个场景。我有一个表格,要求提供姓名,电子邮件和电话号码,并且需要提交给两个不同供应商的两个地点。

1)Aweber 2)本公司

一种可能性是创建一个JavaScript代码段,当人们点击“提交”将其发送给两个表单调用在两个不同的浏览器窗口(这将是我的首选方法)

第二种可能性是首先将它发送给Aweber(autorespnder),然后将这些变量传递给自定义PHP页面。使用$ _GET获取变量,然后将这些变量传递给一个自动表单提交,然后将这些传递给公司的第二个表单。

例如 - 我可以先提交表单Aweber,然后将结果传递回form.php的:

$name = $_get['name']; 
$email = $_get['email']; 
$phone = $_get['phone']; 

将在表格的其余部分是什么样子的,卷曲或javascript?

我尝试将变量传递到公司帖子表单。它不会接受任何GET命令 - 它只接受POST命令,所以CURL可能不起作用,(除非有办法通过CURL发布表单)?

任何人都有一个优雅的解决方案,对最终用户看起来不好?

你有什么想法?提前致谢!

+1

的理想解决方案可能是公司所接收的从使该API发送消毒数据的呼叫处理后产生的API和Aweber。 – marekful

+0

我明白,这将是理想的,但他们还没有API。任何其他想法? – Viktor

+1

只需发送一个处理Aweber表单的PHP脚本的发布请求。您可以使用cURL,或者有许多其他方式来发送来自PHP的HTTP请求。 – marekful

回答

2

如果没有任何真实的数据或实际的形式进行调用,这应该给出如何使用AJAX和jQuery实现的基本想法。

*更新

我更新了答案,以显示如何通过表单变量作为后而不是一个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的,并通过POST数据,这里没有发生,因为我没有一个API查询接受发布数据。第一个表单提交后,它将数据发送到第二个表单。你如何处理数据将取决于服务器的响应。

小提琴:https://jsfiddle.net/calder12/t0fos3kk/1/

+0

我明白你的脚本如何操作。你会在'这里回复这里回答'这个部分,把这个表格提交给这两个不同的外部网站,通过POST? 例如,第一交呼叫是行动=“https://www.aweber.com/scripts/addlead.pl” 的第二交呼叫是=“HTTPS://companyform/form.php” 的第二次邮政调用不会接受任何命令行变量 - 它只能查找POST。 – Viktor

+0

POST调用的语法是什么?这些是外部网站,因此不会有任何API查询。我们需要向每个站点提交一个单独的POST请求。 – Viktor