yl1tko1
@yl1tko1
Начинающий веб программист

Почему после отправки через ajax не видит POST?

Добрый день . Подскажите
Есть форма
<form class="sms-form" >
<input type="hidden" name="ttns" value="<?php echo $page->crm_ttn?>">
<input type="hidden" name="phone" value="<?php echo $page->crm_phone?>">
<button class="sms" type="submit">send</button>
</form>


Я обрабатываю через ajax
function smsSend() {
  var msge  = jQuery('.sms-form').serialize();
  jQuery.ajax({
    type: 'POST',
    url: '/wp-content/themes/twentysixteen/some.php',
    data: msge,
    success: function(data) {
      alert('Отправлено' + data);
    },
    error:  function(xhr, str){
      alert('Возникла ошибка: ' + xhr.responseCode);
    }
  });
  return false;
}


и когда проверяю в файле . some.php "echo $_POST['ttns']";
ничего не выводит . Что я делаю не так?

-----

перебираю нажатие кнопок так
var formSubmi = document.querySelectorAll('.sms');
  for (i = 0; i < formSubmi.length; i++){
  formSubmi[i].addEventListener('click', function(e){
    e.preventDefault();
    smsSend()
  });
  }
  • Вопрос задан
  • 228 просмотров
Решения вопроса 1
yl1tko1
@yl1tko1 Автор вопроса
Начинающий веб программист
jQuery('.sms-form').on('submit', function(e) {
e.preventDefault();
// `jQuery(this)` это форма которая сабмитится в данный момент
var msge = jQuery(this).serialize();
jQuery.ajax({
type: 'POST',
url: '/wp-content/themes/twentysixteen/some.php',
data: msge,
success: function(data) {
alert('Отправлено' + data);
},
error: function(xhr, str){
alert('Возникла ошибка: ' + xhr.responseCode);
}
});
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Магия не работает вне Хогвардса, значит дело в кривых рукахскриптах.
1) console.log() через строчку в яваскриптах для проверки состояния переменных(var msge = jQuery('.sms-form').serialize(); console.log(msge); )
2)
и когда проверяю в файле . some.php "echo $_POST['ttns']"; ничего не выводит.
Очень надеюсь что вы смотрите в консоль закладку network... Кроме того что-то из кода в любом случае должно выводить алерт, если никакого алерта нет значит до функции дело вообще не доходит.
3)
перебираю нажатие кнопок так

Зачем? А если я ввел данные и ентер нажал, гордо нплював на ваши кнопки? пару строчек:
jQuery('.sms-form').on('submit',function(e){
e.preventDefault();
smsSend();
})

4) Консоль браузера - смотреть ошибки консоли и смотреть вкладку нетворк - куда и какие данные отправляются, что отвечает сервер...
Вся отладка должна занять 10 минут.
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега PHP
Если ничего не выводит, то сделай var_dump($_POST) и смотри содержимое. Возможно у тебя там пустая строка, а это может значить, что все работает как надо, а проблема в том, что <?php echo $page->crm_ttn?> ничего не выводит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы