У меня возникла проблема, с которой я некоторое время боролся, и теперь мне нужна помощь: у меня есть следующий массив
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 (), чтобы получить желаемый результат, в то время как в большинстве уроков перед выводом данных прошло два раза.