Добавление картинок в поля лида
Пример размещения на странице сайта формы с возможностью прикрепления файлов. По заполнении формы в Битрикс24 будет создаваться новый лид.
В коде ниже есть пользовательские поля:
UF_CRM_1551350435588 - множественное свойство типа файл;
UF_CRM_1551362436225 - свойство типа файл.
Внимание! Для использования примера настройте работу класса CRest и подключите файл crest.php в файлах, где используется данный класс. Подробнее.
- Создаём форму на нужной странице:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> $(document).ready(function() { $('#form_to_crm_file').on( 'submit', function(el) {//event submit form el.preventDefault();//the default action of the event will not be triggered var formData = new FormData(this); var xhr = new XMLHttpRequest(); xhr.open("POST", 'form.php'); xhr.onreadystatechange = function () { if (this.readyState === 4) { if (this.status >= 200 && this.status < 400) { // Success! var resp = this.responseText; try { var json = JSON.parse(resp); if (typeof json.message !== 'undefined') { alert(json.message); } } catch (e) { return false; } } else { alert('error'); } } }; xhr.send(formData); }); }); </script> <form id="form_to_crm_file" method="post" enctype="multipart/form-data"> <input type="text" name="NAME" placeholder="Name" required> <input type="text" name="LAST_NAME" placeholder="Last name"> <input type="text" name="PHONE" placeholder="Phone"> <input type="text" name="EMAIL" placeholder="E-mail"> <input type="file" name="FILE" placeholder="File"> <input type="file" name="FILES[]" placeholder="Files" multiple="multiple"> <input type="submit" value="Submit"> </form>
- Создаём файл form.php, для сохранения заполненных форм:
<? $sName = htmlspecialchars($_POST["NAME"]); $sLastName = htmlspecialchars($_POST["LAST_NAME"]); $sPhone = htmlspecialchars($_POST["PHONE"]); $sEmail = htmlspecialchars($_POST["EMAIL"]); //UF_CRM_1551350435588 - multiple file field //UF_CRM_1551362436225 - file field $arFiles = []; $arFile = []; //make array multiple files for add to custom field if(!empty($_FILES['FILES']['tmp_name']) && is_array($_FILES['FILES']['tmp_name'])){ foreach($_FILES['FILES']['tmp_name'] as $k=>$path){ $arFiles[] = [ "fileData" => [ $_FILES['FILES']['name'][$k], base64_encode(file_get_contents($path)) ] ]; } } //make file array for add to custom field if(!empty($_FILES['FILE']['tmp_name'])){ $arFile = [ "fileData" => [ $_FILES['FILE']['name'], base64_encode(file_get_contents($_FILES['FILE']['tmp_name'])) ] ]; } //Форматируем Phone и почту для сохранения $arPhone = (!empty($sPhone)) ? array(array('VALUE' => $sPhone, 'VALUE_TYPE' => 'WORK')) : array(); $arEmail = (!empty($sEmail)) ? array(array('VALUE' => $sEmail, 'VALUE_TYPE' => 'HOME')) : array(); $result = CRest::call( 'crm.lead.add', [ 'fields' =>[ 'TITLE' => 'From the site: '.implode(' ',[$sName,$sLastName]),//*Lead Name[string] 'NAME' => $sName,//Name[string] 'UF_CRM_1551350435588' => $arFiles, 'UF_CRM_1551362436225' => $arFile, 'LAST_NAME' => $sLastName,//Last name[string] 'PHONE' => $arPhone,//Phone[string] 'EMAIL' => $arEmail,//E-mail[string] ] ]); if(!empty($result['result'])){ echo json_encode(['message' => 'Lead add']); }elseif(!empty($result['error_description'])){ echo json_encode(['message' => 'Lead not added: '.$result['error_description']]); }else{ echo json_encode(['message' => 'Lead not added']); } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024