从表单向两个不同位置发送信息的最佳/最简单方法是什么,基本上在一个表单上有2个操作。我有一些字段需要为每个操作命名不同,例如..
<form id="form" name="form" action='post.php' method='POST' accept-charset='UTF-8'><input type='hidden' name='xnQsjsdp' value=SlGqwqH3ITc$/> <input type='hidden' name='xmIwtLD' value=x4LHs39QfKiFkCs1PrsnsG-*B6-MHnNR/> <input type='hidden' name='actionType' value=TGVhZHM=/> <input type='hidden' name='returnURL' />
<input name='firstName' type='text' id="firstName" style="float:left; width:45%;" maxlength='40' />
<input name='lastName' type='text' id="lastName" style="float:left; width:45%;" maxlength='40' />
<input type="submit" />
</form>
post.php看起来像这样。
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$hidden1 = $_POST["xnQsjsdp"];
$hidden2 = $_POST["xmIwtLD"];
$hidden3 = $_POST["actionType"];
$hidden4 = $_POST["returnURL"];
$firstName = $_POST["firstName"];
$lastName = $_POST["lastName"];
$street = $_POST["Street"];
$city = $_POST["City"];
$State = $_POST["State"];
$zipCode = $_POST["Zip"];
$email = $_POST["Email"];
$phone = $_POST["Phone"];
$LEADCF7 = $_POST["LEADCF7"];
$zohoPrams = "xnQsjsdp=$hidden1&xmIwtLD=$hidden2&actionType=$hidden3&returnURL=$hidden4&First Name=$firstName&Last Name=$lastName";
$maxPrams = "FName=$firstName&LName=$lastName";
};
?>
<script>
$(function() { // setup an onReady (similar to onLoad) handler
$.post("https://crm.zoho.com/crm/WebToLeadForm", <?php echo $zohoPrams; ?>; // post to first address
$.post("http://www.max360group.com/", <?php echo $maxPrams; ?>; // post to second address
});
</script>
你可以看到我尝试使用ajax ..但我想我做错了什么,如果你有任何其他方式可以做到这一点的建议那么好:]谢谢!
答案 0 :(得分:4)
你可以在post.php中用cURL做服务器端。
因此,您已设置了变量,并且已经过验证和清理,然后:
$zoho = curl_init("https://crm.zoho.com/crm/WebToLeadForm");
curl_setopt($zoho, CURLOPT_SSL_VERIFYPEER, false); //Note, not very secure. Would have to get certificate otherwise. Look up how to.
curl_setopt($zoho, CURLOPT_FOLLOWLOCATION, 1); //Makes sure that it follows any redirects
curl_setopt($zoho, CURLOPT_RETURNTRANSFER, 1); //Returns the result instead of outputting it to the browser
curl_setopt($zoho, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); //Will make the end server think it was submitted with Firefox, and not by a server using cURL.
curl_setopt($zoho, CURLOPT_POST, 1);
curl_setopt($zoho, CURLOPT_POSTFIELDS, $zohoprams);
//If you want the rest of the $_POST data and not just what you set above in $zohoprams,
//CURLOPT_POSTFIELDS takes either an array, which will automatically do the appropriate thing with it as a $key=$value, or a string like you have formatted for $zohoprams
curl_exec($zoho);
curl_close($zoho);
$max = curl_init('http://www.max360group.com/');
curl_setopt($max, CURLOPT_POST, 1);
curl_setopt($max, CURLOPT_POSTFIELDS, $maxprams);
curl_setopt($max, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($max, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($max, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_exec($max);
curl_close($max);
可能需要稍微更改才能完全按照您的需要进行操作,并且可能需要伪造标题,就像它是浏览器一样,但这是它的基本功能。可能还需要将CURLOPT_RETURNTRANSFER设置为true。
答案 1 :(得分:2)
不允许跨域发送XHR或Ajax请求。您可以使用cURL实现此目的。我想像有很多关于使用PHP和cURL提交表单的教程。
示例谷歌搜索,以帮助您朝着正确的方向前进:http://www.google.com/search?q=using+curl+to+submit+form+data+php
答案 2 :(得分:0)
您的主要问题是javascript无法用于访问其他服务器上的文件,就像您尝试的那样。一种可行的方法是在您的服务器上安装PHP文件,只需设置表单并将其发布(通过表单submit()
使用javascript)到远程服务器。