index.php
main.js
submit_form.php
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Форма обратной связи</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="js/main.js"></script> </head> <body> <form id="contactForm"> <label for="name">Имя:</label> <input type="text" id="name" name="name" required><br><br> <label for="phone">Телефон:</label> <input type="text" id="phone" name="phone" required><br><br> <label for="question">Ваш вопрос:</label> <textarea id="question" name="question"></textarea><br><br> <input type="submit" value="Отправить"> </form> </body> </html> |
$(document).ready(function() { function validateForm() { var name = $("#name").val().trim(); var phone = $("#phone").val().trim(); var question = $("#question").val().trim(); var errorMsg = ""; // Проверка имени if (name.length < 2) { errorMsg += "Имя должно содержать не менее 2 символов.\n"; } // Проверка телефона var phonePattern = /^\+7\s?\d{3}\s?\d{3}\s?\d{2}\s?\d{2}$/; if (!phonePattern.test(phone)) { errorMsg += "Телефон должен быть в формате +7 999 999 9999.\n"; } // Если есть ошибки, показать их if (errorMsg != "") { alert(errorMsg); return false; } return true; } $("#contactForm").on("submit", function(event) { event.preventDefault(); if (!validateForm()) { return; } var formData = { name: $("#name").val().trim(), phone: $("#phone").val().trim(), question: $("#question").val().trim() }; $.ajax({ type: "POST", url: "submit_form.php", data: formData, success: function(response) { alert(response); }, error: function() { alert("Произошла ошибка при отправке формы."); } }); }); }); |
как создать лид через вебхук - более подробная статья. CurlBitrix24 - функция, которая отправляет запросы в Б24 |
function CurlBitrix24($method, $arData=array()){ $queryUrl = "https://testnikaverro.bitrix24.ru/rest/[юзер]/[код]/".$method; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $queryUrl, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, )); if(!empty($arData)){ curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($arData)); } $result = curl_exec($curl); curl_close($curl); return json_decode($result,true); } if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = trim($_POST['name']); $phone = trim($_POST['phone']); $question = trim($_POST['question']); $errors = []; // Валидация имени if (strlen($name) < 2) { $errors[] = "Имя должно содержать не менее 2 символов."; } // Валидация телефона $phonePattern = '/^\+7\s?\d{3}\s?\d{3}\s?\d{2}\s?\d{2}$/'; if (!preg_match($phonePattern, $phone)) { $errors[] = "Телефон должен быть в формате +7 953 585 1309."; } // Если есть ошибки, вернуть их if (!empty($errors)) { echo implode("\n", $errors); exit; } // Запись данных в файл $file = 'submissions.txt'; $current = file_get_contents($file); $current .= "Имя: $name\nТелефон: $phone\nВопрос: $question\n\n"; file_put_contents($file, $current); // Отправка письма менеджеру $to = 'hello@nikaverro.ru'; $subject = 'Новая заявка с сайта'; $message = "Имя: $name\nТелефон: $phone\nВопрос: $question"; if (mail($to, $subject, $message)) { echo "Форма успешно отправлена."; } else { echo "Произошла ошибка при отправке письма."; } //для отправки в Б24 $arFields = [ "TITLE" => $name, "ADDRESS" => "Адрес", "PHONE" => [ ["VALUE"=>$phone, "VALUE_TYPE"=>"WORK" ], ], "COMMENTS" => $question, "UF_CRM_1717508297392"=> 47,//свойство типа список ид значения для примера "UF_CRM_1717508545248" => [ //свойство типа файл для примера 'fileData'=>[ 0 =>"my_file.txt", 1 =>base64_encode($current) ] ] ]; $result = CurlBitrix24('crm.lead.add.json', array( 'fields' => $arFields, 'params' => array("REGISTER_SONET_EVENT" => "Y") )); $leadId = (is_array($result) && !empty($result["result"])) ? $result["result"]: false; if(!empty($leadId)){ echo "\nДобавлен лид: ".$leadId; } } |