You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表单提交至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数组结构——只有邮箱、电话这类支持多值的字段才需要用数组格式传递。

修改步骤:

  1. 将fields中的POSITION数组替换为POST字段,直接赋值$position字符串。
  2. 若不确定字段标识,可通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:47:06