У меня есть функция javascript, которая собирает данные из некоторых полей ввода и флажков.
Я хочу отправить эти данные в файл PHP, а затем вернуть некоторую информацию из базы данных.
Но у меня проблема с получением POST-данных в PHP, поэтому здесь я остановлюсь только на этой проблеме и не буду заниматься какой-либо базой данных.
Данные, собранные в HTML форме возвращается в объект Javascript, преобразовать его в Json с помощью JSON.stringify(data)
и я получаю:
{"motscle":[""],"categories":[1,2,3],"prix":[{"min":0,"max":50},{"min":50,"max":100},{"min":100,"max":200},{"min":200,"max":500},{"min":500,"max":1000},{"min":1000,"max":2000}],"dimensions":{"longueur":"","largeur":"","hauteur":""}}
Вы можете проверить его на http://jsonformatter.curiousconcept.com/, чтобы увидеть расширенную форму и чтобы увидеть, что это действительный JSON. Итак, проблема здесь не здесь.
Тогда у меня есть Ajax вызова, как, что для целей тестирования (var theJSON
содержит выше JSON строку):
$.ajax({
url: 'post.php',
data: theJSON ,
dataType: 'json',
error: function(){
console.log("Error in ajax request");
},
success: function(data)
{
console.log("Success of ajax request");
console.log(data);
}
});
Мой тестирования PHP файл post.php
как то:
<?php
header('Content-Type: application/json; charset=utf-8');
echo json_encode($_POST);
?>
Аякса вызов в порядке, так как я получаю это в консоли js:
Success of ajax request
[]
Однако, как вы можете видеть, у меня также есть пустой массив []
. Я ожидал получить содержимое $ _POST, которое PHP должен был отправить мне.
Я не знаю, где я ошибаюсь. Почему я не получаю данные в $_POST
?
Откройте средства разработки вашего браузера и смотреть запрос/ответ в консоли. Вы должны увидеть отправленные данные и возвращенные данные. Это ваша отправная точка для устранения неполадок. –
Echo '$ _GET' и посмотреть, не пусто ли это. Если GET заполняется, добавьте атрибут 'type:" POST "' в ваш вызов ajax. – Rickkwa
@Rickkwa Это была проблема, thx – singe3