Непосредственно код.
HTML:
<html>
<div class="modal-overlay closed" id="modal-overlay"></div>
<div class="modal closed" id="modal" aria-hidden="true" role="dialog">
<button class="close-button" id="close-button">Закрыть</button>
<div class="modal-guts" role="document">
<div class="form__wrapper">
<form id="form-contact" method="POST" class="form-element" autocomplete="off">
<p class="form-title">Абу, иди сюда</p>
<p class="form-message"></p>
<input name="name" type="text" class="form-input__name" tabindex="0" placeholder="Введите ваше имя" required>
<input name="phone" id="phone" type="tel" class="form-input__phone" tabindex="0" placeholder="Введите ваш телефон">
<input name="theme" type="hidden" class="form-input__theme" value="Заявка с сайта">
<input type="submit" class="form-input__button" onclick="ym(52794661, 'reachGoal', 'zayavka'); return true;" value="Жду звонка!">
</form>
</div>
</div>
</div>
</html>
JS:
$(document).ready(function () {
$("#phone").mask("+7 (999) 999-99-99");
});
$(document).ready(function () {
$(".form-element").submit(function () {
var formID = $(this).attr('ID');
var formNm = $('#' + formID);
var message = $(formNm).find(".form-message");
var formTitle = $(formNm).find(".form-title");
$.ajax({
type: "POST",
url: 'https://ромашка.рф/callback-form/telegramform/php/send-message-to-telegram.php',
data: formNm.serialize(),
success: function (data) {
// Вывод сообщения об успешной отправке
message.html(data);
formTitle.css("display","none");
$('input','.form-element').not(':input[type=submit], :input[type=hidden], :reset').val('');
$(".form-element input[type=submit]").attr('disabled','disabled');
/* setTimeout(function(){
formTitle.css("display","block");
message.html('');
$(".form-element input[type=submit]").attr('enabled','enabled');
}, 30000); */
},
error: function (jqXHR, text, error) {
// Вывод сообщения об ошибке отправки
message.html(error);
formTitle.css("display","none");
setTimeout(function(){
formTitle.css("display","block");
message.html('');
$('input').not(':input[type=submit], :input[type=hidden]').val('');
}, 3000);
}
});
return false;
});
});
var modal = document.querySelector("#modal"),
closeButton = document.querySelector("#close-button");
closeButton.addEventListener("click", function() {
modal.classList.toggle("closed");
modalOverlay.classList.toggle("closed");
});
const openButtons = document.querySelectorAll(".modal-btn");
openButtons.forEach(btn=> {
btn.addEventListener("click", () => {
modal.classList.toggle("closed");
modalOverlay.classList.toggle("closed");
});
})
const modalOverlay = document.querySelector(".modal-overlay");
modalOverlay.forEach(btn=> {
modalOverlay.addEventListener("click", () => {
modal.classList.toggle("closed");
modalOverlay.classList.toggle("closed");
});
})
PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST['name']) && !empty($_POST['phone'])){
if (isset($_POST['name'])) {
if (!empty($_POST['name'])){
$name = strip_tags($_POST['name']);
$nameFieldset = "Имя пославшего: ";
}
}
if (isset($_POST['phone'])) {
if (!empty($_POST['phone'])){
$phone = strip_tags($_POST['phone']);
$phoneFieldset = "Телефон:%20";
}
}
if (isset($_POST['theme'])) {
if (!empty($_POST['theme'])){
$theme = strip_tags($_POST['theme']);
$themeFieldset = "Тема: ";
}
}
$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$txtname = trim($_POST['name']);
$txtNameValue = trim($_POST['name_class_value']);
$txtphone = trim($_POST['phone']);
$txttheme = trim($_POST['theme']);
// от кого
$fromMail = 'info@ромашка.рф';
$fromName = 'заявка с сайта';
// Сюда введите Ваш email
$emailTo = 'for@ромашка.рф';
$subject = 'Форма обратной связи';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $fromName ." <". $fromMail ."> \r\n";
// тело письма
$body = "Получена заявка с сайта https://ромашка.рф\n\nИмя: $txtname\nТелефон: $txtphone\nТема: $txttheme\n\nIP отправителя: $ip\nБраузер отправителя: $brose";
$mail = mail($emailTo, $subject, $body, $headers, '-f'. $fromMail );
//echo 'ok';
$token = "111";
$chat_id = "-111";
$arr = array(
$nameFieldset => $name,
$phoneFieldset => $phone,
$themeFieldset => $theme
);
foreach($arr as $key => $value) {
$txt .= "<b>".$key."</b> ".$value."%0A";
};
$txt = str_replace('+','%2B',$txt);
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
if ($sendToTelegram) {
echo '<p class="form-title success">Ура!</p>';
return true;
} else {
echo '<p class="form-title fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
} else {
echo '<p class="form-title fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
}
} else {
header ("Location: /");
}
?>
Как-то я ставил вопрос иначе, но ответить никто не сумел.
Ясно, что где-то надо
<a href="tel:$phone">$phone</a>
, но как и где - чёрт его знает.
Полный ноль в PHP я .