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;
}
} |