2016-11-18 27 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