У меня есть простой вызов jquery ajax, который отправляет информацию о производителе автомобилей и отвечает массивом моделей автомобилей, чтобы можно было заполнить меню выбора (опций) моделей.
Я строю массив в php/ MySQL следующим образом.
$make = $_POST['make'];
//QUERY
$query=mysql_query("SELECT id,model FROM cars WHERE manufacturer='$make'")or die(mysql_error());
while($row=mysql_fetch_array($query)){
$id=$row['id'];
$model=$row['model'];
$arr[$id]=$model;
}
//ADD TO CALLBACK
$data['models'] = $arr;
$data['success'] = true;
//RETURN JSON
echo json_encode($data);
Ответ Ajax Jquery установлен на JSON в качестве типа данных, и в функции успеха я поместил следующее для проверки ответа, где data.models - это данные, возвращаемые из php.
$.each(data.models,function(key, value) {
alert(key + ': ' + value);
});
Я вижу из firebug, что данные возвращаются, но ajax всегда выдает ответ об ошибке.
Я не понимаю, почему.
Типичный ответ, который я получаю, это
{"models":{37:"DB7 Vantage Coupe '00",38:"DB9 Coupe '03",39:"DB9 Coupe '06",40:"V8 Vantage '99",41:"Vanquish '04"},"success":true}
Возможно, есть некоторые подсказки в вышеприведенном формате outout.Я не достаточно удобен с массивами, чтобы знать, является ли ответ правильным или неправильным.
Любые идеи будут более чем полезны.