У меня возникла эта проблема, с которой я когда-то боролся, и теперь мне нужна помощь: у меня есть следующий массив
array(2) {
[0]=>
object(stdClass)#4 (4) {
["id"]=>
string(1) "1"
["idMake"]=>
string(1) "1"
["modelName"]=>
string(6) "Legend"
["modelYear"]=>
string(4) "1986"
}
[1]=>
object(stdClass)#5 (4) {
["id"]=>
string(1) "2"
["idMake"]=>
string(1) "1"
["modelName"]=>
string(3) "MDX"
["modelYear"]=>
string(4) "2000"
}
}
Как я могу использовать функцию $.get()
через jQuery, чтобы иметь что-то вроде этого:
id Model Year
1 Legend 1986
2 MDX 2000
Я уже пробовал следующее:
файл process.php:
<?php
require 'DataLayer.class.php';
$dl = new DataLayer();
//get car make models
$models = $dl->getCarModels($id);
if(isset($models)){
echo json_encode(json_encode($models));
}
else{
echo 'failed';
}
?>
функция getCarModels:
public function getCarModels($id){
$stmt = $this->pdo->prepare("SELECT * FROM model WHERE idMake=? ORDER BY modelName");
$stmt->execute(array($id));
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
Функция Javascript, вызываемая при переходе по некоторым ссылкам
function getCarModels(id, make){
$.get(process.php, function(data){
var models = $.parseJSON(data);
for(var model in models.model.modelName){ // I got stuck here
}
});
}
Надеюсь, это имеет какой-то смысл для кого-то. Спасибо.
Просто найдите аналогичную проблему по этой ссылке: многомерный массив php в jQuery я даю попытка.
Как я уже говорил с самого начала, моя проблема очень похожа на ту, что опубликована по этой ссылке многомерный массив php в jQuery. Мой единственный вопрос заключается в том, что я действительно не знаю, почему они используют функцию json_encode() дважды, поскольку все, что я сделал, чтобы заставить ее работать правильно, - это удалить одну из функций json_encode().
Буду признателен за некоторое объяснение причины, по которой я использовал только функцию jsan_encode() для получения желаемого результата, в то время как в большинстве учебников это было два раза перед выводом данных.
Еще раз спасибо.
models
, а также содержимого ответа GET от сервера. - person Justin Ethier   schedule 16.03.2012