Создание 2-мерного массива jQuery из 2-мерного массива PHP с помощью AJAX - PullRequest
1 голос
/ 06 июля 2011

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

В настоящее время я могу вернуть этот 2-мерный массив (массивзаписей с массивом столбцов в каждой) назад к моей функции jQuery, но я не знаю, как преобразовать массив во что-то, что я могу использовать.

код jQuery для вызова AJAX:

    var element= $('select[name=elementName]');
    var data = 'inData=' + element.val();

    // Call AJAX to get the info we need to fill the drop downs by passing in the new ID
    $.ajax(
    {
        type: "POST",
        url: "ops.php",
        data: "op=getInfo&" + data,
        success: 
        function(outData) 
        {   
            // WHAT DO I DO HERE TO CONVERT 'outData' INTO A 2-DIMENSIONAL jQUERY ARRAY??
        },
        error:
        function()
        {

        }
    }); 

PHP-код:

$sqlResults= mysql_query("SELECT data FROM table WHERE id='".$_POST['inData']."'"); 

$outData = array();

// Fill the data array with the results
while ($outData[]= mysql_fetch_array($sqlResults));

// echo the data to return it for use in the jQuery file
echo $outData;

Отправленный код работает нормально - я просто не знаю, как читать 'outData' в jQuery.

Заранее спасибоза любую помощь !!

Ответы [ 4 ]

1 голос
/ 06 июля 2011

вы ищете JSON

//php
echo json_encode($outData);

//javascript
$.ajax({
    type: "POST",
    url: "ops.php",
    data: "op=getInfo&" + data,
    dataType: "json",
    success: function(outData) {   
        console.log(outData); //this will be an object just like 
                              //your php associative array
    },
    error: function() {

    }
});
1 голос
/ 06 июля 2011

Вы смотрели на json_encode?

echo json_encode($outData);

Это преобразует его в объект json, который может быть прочитан jQuery.

0 голосов
/ 07 июля 2011

JSON может добиться цели, но почему бы не взглянуть на это с другой стороны?

Если вы пингуете PHP для получения обновленной информации, просто выведите PHP значения параметров, которые вы хотите, в поле выбора. Затем используйте HTML-возврат jQuery AJAX для .html () результата в ваш элемент select.

Существует несколько различных способов убрать кошку, и я бы сказал, что этот гораздо более простой подход даст вам дополнительное время, чтобы заняться волшебством jQuery.

0 голосов
/ 06 июля 2011

jQuery не может прочитать эхо массива PHP. Используйте json_encode перед выводом:

 echo json_encode($outData);

Это формат, который jQuery может анализировать как ответ.

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