2013-05-22 4 views
0

Я пытаюсь прочитать данные, отправленные обратно на мой запрос ajax с сервера. Я возвращаю назад массив, тогда я хочу прочитать каждое значение и поместить его в нужное место на странице. Я не уверен, как работать с JSON, который был отправлен обратно. Пример, на который я смотрел, казалось, сказал, что мне просто нужно ссылаться на него как на массив, но это не работает.Чтение данных возврата из php json_encode

//AJAX Request 
$.post("getData.php", {trackingNum: trackNum}, 
function(result) { 
    alert(result); 
    usrID(result[0]); 
    setTracking(result[1]); 
    carType(result[2]); 
    status(result[3]); 
}); 

//PHP 
while($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    $array[0] = $row[0]; 
    $array[1] = $row[1]; 
    $array[2] = $row[2]; 
    $array[3] = $row[3]; 
} 
echo json_encode($array); 

Что я получаю обратно из предупреждения выглядит следующим образом: [ «2», «D78A19C», «Nissan», «Шлифовка»] Но это не будет ссылаться как массив. Помогите?

+0

json_encode собирается кодировать строку как JSON ... Каковы фактические данные перед кодировкой? – brbcoding

+0

Вы должны использовать правильные ключи, а не только массив строк. – moonwave99

+0

Я бы рекомендовал использовать несколько значимых ключевых слов в массиве. Например: '$ array ['username'] = $ row [..]', а затем в вашем js-коде вы можете использовать его так: 'result.username' (object). Что более семантически корректно, чем 'result [0]' –

ответ

1

необходимо указать, что данные возврата являются типом JSON.

использование $.getJSON вместо $.post или просто использовать

$.ajax({ 
    type: 'post', 
    url: "getData.php", 
    data: {trackingNum: trackNum}, 
    dataType: 'json', 
    success: function(result) { 
     alert(result); 
     usrID(result[0]); 
     setTracking(result[1]); 
     carType(result[2]); 
     status(result[3]); 
    } 
}); 

Совет: избавиться от mysql_* функций и вместо этого использовать MySQLi или PDO.

+0

Если он не хочет делать сообщение, просто посмотрите http://api.jquery.com/jQuery.post/ и выполните поиск json. Отличный пример – MKroeders

Смежные вопросы