Пустой $_POST после AJAX запроса

253
25 апреля 2018, 05:35

Есть форма с которой я отправляю value input-ов в php. Делаю я это ajax запросом но почему-то, когда я обращаюсь в php файле к $_POST - он пустой.

Вот форма и запрос:

$('#form li input').click(function select_lang() { 
  var lang = $(this).attr('id'); 
  $.ajax({ 
    type: "POST", 
    url: "php/header.php", 
    data: { 
      'lang': lang 
    }, 
    cache: false, 
    success: function(response) { 
      console.log(response); 
    }, 
    error: function(error) { 
      console.log(error); 
    } 
  }); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<ul> 
  <form method="post" action="javascript:void(null);" id="form" onsubmit="select_lang()"> 
    <li> 
      <input type="button" name="lang" id="first" value="Hello"> 
    </li> 
    <li> 
      <input type="button" name="lang" id="second" value="Bye"> 
    </li> 
  </form> 
</ul>

Вот header.php:

<?php
    echo $_POST['lang'];    
?>
Answer 1

У вас ошибка в js коде - onsubmit означает, что js-код будет выполняться при нажатии не на простую кнопку, а на type=submit Нужно переписать код.

Answer 2

Неверное обращение к переменным окружения. Верно так:

<?php
echo $_POST['lang'];

Кроме этого, непонятно что должна делать

var lang = $(this).attr('id');

В настоящий момент значение будет пустым, т.к. значение атрибута id кнопок не установлено.

READ ALSO
Работает ли javascript AJAX в wordpress?

Работает ли javascript AJAX в wordpress?

Здравствуйте, разбираюсь с движком вордпрес и столкнулся с трудность при работе с ajax, причем через jquery получилось отправить запрос и получить...

208
Получить от сервера html код в переменной json

Получить от сервера html код в переменной json

Перелопатил пол интернета, так и не нашел что искалПри изменении количества продуктов в корзине я отправляю на сервер запрос с идентификатором...

238
Запись текущего значения в сессию

Запись текущего значения в сессию

Я пытаюсь реализовать что то вроде мультиязычности на сайтеПринцип такой: огда пользователь заходит на сайте, поставить ему язык его браузера,...

248