ajax не передает данные методом post?

400
21 июня 2017, 01:56

Не понимаю, почему не передаются данные методом post через ajax-запрос, до серверной части скрипт доходит и php файл срабатывает, однако данные уже в самом ajax почему то не передаются. html:

<form action="" method="post" id="form_chat">
  <!-- ????????? ?????????? ???? -->
  <div class="modal-header modal-window-chat-header">
    <div class="pull-left">
        <img class="img-circle chat-avatar" src="<?=SITE.$data['user_data']['img_src']?>" /> Chat with <?=$data['author_news']?>
    </div>
    <div class="pull-right">
        <button type="button" class="btn btn-sm btn-primary" data-dismiss="modal" aria-hidden="true"><i class="fa fa-close"></i>x</button>
    </div>
    <div class="clear"></div>
  </div>
  <!-- ???????? ?????????? ?????????? ???? -->
  <div class="modal-body modal-window-chat-body">
    <div class="col-sm-12 window_messages"></div>
    <div class="col-sm-12 form-group input-group">
        <input type="hidden" class="id_user_to" name="id_user_to" value="<?=$data['user_data']['id']?>" />
        <input type="hidden" class="id_user_from" name="id_user_from" value="<?=$data['user_auth_id']?>" />
        <textarea class="textarea_chat" name="text_chat"></textarea>
    </div>
    <input class="btn btn-default chat-button" type="button" name="send_message" value="Send" />
  </div>
</form>

javascript:

$(document).ready(function () {
//Функция отправки сообщения
function send_message()
{
    //Считываем сообщение из поля ввода
    var text_chat = $(".textarea_chat").val();
    var id_user_to = $(".id_user_to").val();
    var id_user_from = $(".id_user_from").val();
    // Отсылаем паметры
   $.ajax({
            type: "POST",
            url: "index.php?route=chat/add_message",
            data:{
                'action':'add_message',
                'id_user_to': id_user_to,
                'id_user_from': id_user_from,
                'textarea_chat': text_chat
            },
            // Выводим то что вернул PHP
            success: function(html)
            {
                alert(html);
                //Если все успешно, загружаем сообщения
                load_messages();
                //Очищаем форму ввода сообщения
                $(".textarea_chat").val('');
            }
    });
}
//Функция загрузки сообщений
function load_messages()
{
    $.ajax({
            type: "POST",
            url:  "index.php?route=chat/load_messages",
            data: "req=ok",
            // Выводим то что вернул PHP
            success: function(html)
            {
                //Очищаем форму ввода
                $("#messages").empty();
                //Выводим что вернул нам php
                $("#messages").append(html);
                //Прокручиваем блок вниз(если сообщений много)
                $("#messages").scrollTop(90000);
            }
    });
}
// отправка сообщений при нажатии кнопки "Ответить"
$('.chat-button').click(function()
{
 send_message();
});
// проверяем наличие новых сообщений каждые 2 секунды
 /*setInterval(function()
{
 get_chat_messages();
}, 2000);*/
// отправка сообщений при нажатии клавиши "Enter"
$('.textarea_chat').keyup(function(event)
{
  if (event.which == 13)
  {
      send_message();
  }
});
});

и php обработчик:

function action_add_message () {
        if ($_POST['action'] == 'add_message') {
            $_POST = trim($_POST);
            $_POST = mysql_real_escape_string($_POST);
            $_POST = htmlspecialchars($_POST);

            /*$addMessage = array (
                'id_user_to' => $_POST['id_user_to'],
                'id_user_from' => $_POST['id_user_from'],
                'message_text' => $_POST['textarea_chat'],
                'date_message' => time()
            );
            $this->model_chat->AddMessages($addMessage);*/
            echo "111 ".$_POST['id_user_to'].", ".$_POST['id_user_from'].", ".$_POST['textarea_chat'];
        }
   }

при нажатии на кнопку send отправка идет и код на php обрабатывается НО методом post, с ajax почему-то не передаются данные

Answer 1

вопрос решен, вся причина была в этом отрывке php

$_POST = trim($_POST);
$_POST = mysql_real_escape_string($_POST);
$_POST = htmlspecialchars($_POST);

изменил способ проверки $_POST

READ ALSO
imagettftext вывод текста на картинку php

imagettftext вывод текста на картинку php

Здраствуйте, у меня возник вопрос

284
удалить фото ajax

удалить фото ajax

Здравствуйте! Есть ряд картинок (галерея), подскажите как сделать так чтобы при нажатии на картинку всплывал запрос на удаления и после одобрения...

172
Как оставить слово из квадратных скобок

Как оставить слово из квадратных скобок

Дается задание на php, квадратные скобки убрал с помощью регулярных выраженииНапишите скрипт, который выявляет слова в квадратных скобках...

238