Javascript массив в вызов JJuery .post AJAX - PullRequest
1 голос
/ 08 января 2012

У меня есть массив JAVASCRIPT, который выглядит следующим образом:

postarray['min_price'] = 120000;
postarray['max_price'] = 150000;

Я пытаюсь передать это вызову AJAX через функцию jQuery .post, чтобы файл .PHP получил его в следующем формате:

$_REQUEST['query']['min_price'] = 120000;
$_REQUEST['query']['max_price'] = 150000;

Пока я пробовал:

$.post("ajax_findproperties.php", {query: postarray},
        function(data){
            // processing function with JSON result
        }
    ,'json');

Но мне не повезло.Я даже попытался изменить var postarray на запрос, а затем попытался query.serialize() вместо блока переменных в квадратных скобках, но безуспешно.

Когда я проверяю свой статус в Firebug, в вызове AJAX абсолютно не заданы переменные POST - полностью пусто.

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Массив javascript - это не массив, это объект.Определите его раньше:

var postarray = {};
postarray['min_price'] = 120000;
postarray['max_price'] = 150000;

или замените на:

var postarray = {
    min_price: 120000,
    max_price: 150000
};

Теперь работает JSON.stringify:

alert(JSON.stringify(postarray));

Также посмотрите этот пример .

Но этот объект также следует отправлять без JSON.stringify ():

$.post("ajax_findproperties.php", {query: postarray}, ... );
0 голосов
/ 08 января 2012

Попробуйте это решение: добавьте [] к вашей query клавише

$.post("ajax_findproperties.php", { 'query[]': postarray },
    function(data) { },
    'json');

Источник: http://api.jquery.com/jQuery.post/#example-2

0 голосов
/ 08 января 2012

Вы пытались преобразовать его с JSON.stringify(); и затем сделать json_decode(...); в сценарии PHP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...