2012-11-05 21 views
1

我有一个表单需要提交到两个单独的URL:一个是存储数据的Google Spreadsheet,另一个是非现场ASP表单处理器脚本。当我将表单动作设置为任意一个URL时,它都可以完美工作。但是,我需要它提交到这两个网址,然后重定向到一个简单的success.html页面。如果它们不是外部脚本,我可以使用AJAX轻松完成(see article),但由于跨域问题,这不是一个选项。这里是我的代码:需要表单发布到两个关闭服务器的URL,然后用PHP重定向

<form name="apply-now-form" action="somescript.php" method="POST" id="apply-now-form" class="apply-now-form"> 
    <label class="form-label" >Full Name</label> 
    <input name="FirstName" id="FirstName" type="text"> 
    <input name="LastName" id="LastName" type="text" > 
    <label>Phone Number</label> 
    <input name="ResidencePhone" id="ResidencePhone" type="text" > 
    <label>Email Address</label> 
    <input name="EmailAddress" id="EmailAddress" type="email" > 
</form> 

ASP脚本处理成功重定向,所以我认为它应该提交到那一秒。有没有办法,使用cURL或其他方式,使用PHP发送未经更改的表单数据到多个URL?或者如果这是一个选项的Javascript?谢谢。

+0

答案被命名为curl ... – jtheman

回答

1

您可以用CURL来执行此操作。

1- Create the data array and serialize it: 

$fields = array($k => $v,...); 

foreach ($fields as $key => $value) { 
     $fields_string .= $key . '=' . $value . '&'; 
    } 
rtrim($fields_string, '&'); 

2-所述数据发送到谷歌:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'http://googlesite'); 
    curl_setopt($ch, CURLOPT_POST, count($fields)); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    curl_close($ch); 

3-数据发送到ASP:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'http://aspweb'); 
    curl_setopt($ch, CURLOPT_POST, count($fields)); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    curl_close($ch); 

4-重定向

header('Location: http://successpage') 

我想就这样。

+0

我是否需要列出$ form = $ FirstName = $ _POST ['FirstName'];'$ fields = array($ k => $ v,...);'部分?对不起,PHP新手。 –

+0

是的,你必须设置你想传递给谷歌和ASP页面的值:$ fields = array('FirstName'=> $ POST ['FirstName'],...)等等。 –

+0

好,所以它非常接近,除非数据解析不正确。这两个URL都在接收数据,但它以“未定义”的形式出现。如果您使用简单的操作=“googlesite.com”发送它,它会正确解析。有任何想法吗? –

相关问题