我在这里做了一些有点奇怪的事情,我从我的本地数据库中查询数据并使用cURL将其定位到Salesforce表单.数据正确发布到Salesforce.但是,选择倍数未获得选择的正确值.请参阅我的代码中的$ sd ["location"]:
//init curl
$ch = curl_init();
//setup the params
$url = 'https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8';
$oid = "HIDDEN";
//setup the superdelegate array
$sd = array();
$sd["oid"] = $oid;
$sd["retURL"] = "";
$sd["first_name"] = "1144asdfsadf4";
$sd["last_name"] = "SDFSD1111";
$sd["state"] = "IL";
$sd["location"] = '"Chicago","New York","California"'; //this is the value that submits to the select multiple
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($sd));
//post to Salesforce and then close the connection
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
已在Salesforce中设置了选择倍数,其中包含30个不同的位置.我正试图通过应该被选中的城市(芝加哥,纽约,加利福尼亚州).你可以帮我修改我的代码以使其正常工作吗?
你试图实现/复制的是非标准(或者如果你愿意的话,是"实验性的")application/x-www-form-urlencoded格式.mime类型中的"x-"表示它尚未正式标准化.
最常见的应用程序/ x-WWW-form-urlencoded格式我遇到的是在HTML 4(也可能是HTML 5)规范中指定位置.简化时,表示每个成功的控件都按其显示的顺序与其名称和当前值配对,并用&符号"&"分隔.这将转换为包含以下内容的HTTP GET或POST方法:
name=test&desc=some%20description&option=1&option=2&option=3
Run Code Online (Sandbox Code Playgroud)
您还应该在表单名称和值上使用PHP的urlencode函数,然后在HTTP请求的适当位置传递它,以符合RFC1738.
作为旁注,PHP虽然可能并不孤单,但它在处理单个post var上的多个值时却是一个奇怪的例子.它遵循HTML建议的规范,但如果其名称包含PHP数组追加运算符,则将其扩展为仅将var视为多个,例如formname[].如果您尝试在PHP脚本上遵循HTML建议(请参阅下文),则在通过$_POST或$_GET超级全局访问时,它将覆盖名称上的先前值.
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |