Код формы:
<form class="footer__form" method="POST" enctype="multipart/form-data">
<input name="name" type="text" placeholder="Ваше имя">
<input name="phone" type="number" placeholder="Номер телефона" inputmode="decimal">
<select name="english">
<option value="Не выбрано">Знание английского</option>
<option value="Начальный">Начальный</option>
<option value="Средний">Средний</option>
<option value="Продвинутый">Продвинутый</option>
</select>
<input name="income" type="number" placeholder="Желаемый доход" inputmode="decimal">
<input name="theme" type="hidden" value="Заявка с сайта">
<p class="footer__form__result"></p>
<div class="footer__form__submit">
<button class="btn btn__form" type="submit">Отправить</button>
</div>
</form>
Код обработчика:
(function sendMessage() {
const result = document.querySelector('.footer__form__result')
const formId = '.footer__form'
const form = document.querySelector(formId)
function toJSONString(form) {
let obj = {};
let elements = form.querySelectorAll('input, select')
for (let i = 0; i < elements.length; ++i) {
let element = elements[i]
let name = element.name
let value = element.value
if (name) {
obj[ name ] = value
}
}
// console.log(JSON.stringify(obj))
return JSON.stringify(obj)
}
if (form) {
form.addEventListener('submit', event => {
event.preventDefault()
const json = toJSONString(form)
console.log(json)
const xhr = new XMLHttpRequest()
xhr.open('POST', 'send.php', true)
xhr.onload = function(oEvent) {
if (xhr.status === 200) {
alert("Форма отправлена")
}
if (xhr.status !== 200) {
alert("Ошибка отправки формы")
}
}
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.send(json)
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
result.innerHTML = this.responseText;
}
}
})
}
}
Отправка:
<?php
header("Content-Type: application/json");
$data = json_decode(file_get_contents("php://input"));
echo $data;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
//В переменную $token нужно вставить токен, который нам прислал @botFather
$token = "5071414683:AAEQXh9plvQw8f8ePaxwx_n71L94ZeSYB-Q";
//Сюда вставляем chat_id
$chat_id = "-768297723";
//Определяем переменные для передачи данных из нашей формы
if (isset($_POST['name'])) {
if (isset($_POST['name'])) {
if (!empty($_POST['name'])) {
$name = "Имя: " . strip_tags($_POST['name']) . "%0A";
}
}
if (isset($_POST['phone'])) {
if (!empty($_POST['phone'])) {
$phone = "Телефон: " . "%2B" . strip_tags($_POST['phone']) . "%0A";
}
}
if (isset($_POST['english'])) {
if (!empty($_POST['english'])) {
$english = "Знание английского: " . "%2B" . strip_tags($_POST['english']) . "%0A";
}
}
if (isset($_POST['theme'])) {
if (!empty($_POST['theme'])) {
$theme = "Тема: " . strip_tags($_POST['theme']);
}
}
}
$txt = $name . $phone . $theme;
$sendTextToTelegram = file_get_contents("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}");
}
function console_log($data){ // сама функция
if(is_array($data) || is_object($data)){
echo("<script>console.log('php_array: ".json_encode($data)."');</script>");
} else {
echo("<script>console.log('php_string: ".$data."');</script>");
}
}
console_log($data);
?>
Как получить в php данные из формы и отправить эти данные в telegram?