表单提交至Bitrix24时职位字段数据无法同步的技术咨询
问题描述
我有一个收集姓名、邮箱和职位信息的表单。我的PHP代码可成功将姓名和邮箱发送至Bitrix24作为新线索,但职位数据未能传输。以下是我的代码,请问如何实现将职位值发送到Bitrix24?
原代码
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING); $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); $position = filter_input(INPUT_POST, 'position', FILTER_SANITIZE_STRING); $webhookUrl = 'https://b24-zXXXXXXXXXXXXXXXXXXXXXX/crm.lead.add.json'; $postData = http_build_query([ 'fields' => [ 'TITLE' => $name, 'EMAIL' => [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']], 'POSITION' => [['VALUE' => $position, 'VALUE_TYPE' => 'WORK']], ], 'params' => ["REGISTER_SONET_EVENT" => "Y"] ]); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $webhookUrl); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if ($response === false) { echo 'Curl error: ' . curl_error($ch); } curl_close($ch); echo $response; header("Location: " . $_SERVER['PHP_SELF']); exit; } ?> <!DOCTYPE html> <html> <head> <title>FORM</title> </head> <body> <form action="" method="post"> <label for="name">Name:</label><br> <input type="text" id="name" name="name"><br><br> <label for="email">E-mail:</label><br> <input type="email" id="email" name="email"><br><br> <label for="position">Position:</label><br> <input type="text" id="position" name="position"><br><br> <input type="submit" value="SUBMIT"> </form> </body> </html>
解决方法
问题出在职位字段的格式与标识错误:Bitrix24的CRM线索中,职位对应的字段是POST(字符串类型),而非你写的POSITION数组结构——只有邮箱、电话这类支持多值的字段才需要用数组格式传递。
修改步骤:
- 将
fields中的POSITION数组替换为POST字段,直接赋值$position字符串。 - 若不确定字段标识,可通过Bitrix24后台「设置 > CRM > 字段」查看线索模块的职位字段对应API标识。
修改后的核心代码片段:
$postData = http_build_query([ 'fields' => [ 'TITLE' => $name, 'EMAIL' => [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']], 'POST' => $position, // 修正为正确的字段标识与格式 ], 'params' => ["REGISTER_SONET_EVENT" => "Y"] ]);
调试建议:
- 暂时注释掉
header("Location: " . $_SERVER['PHP_SELF']),查看echo $response输出的API返回信息,Bitrix24会明确提示字段错误或参数问题。 - 可通过
var_dump($position)验证表单提交的值是否被正确获取。
内容的提问来源于stack exchange,提问作者Kenan Thompson
相关产品推荐
相关产品推荐

