我有这个问题,我一直在努力,现在我需要帮助: 我有以下数组
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"
}
}
如何通过jQuery使用$.get()
函数来实现这样的目的:
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 multidimensional array into jQuery我正在试一试。
就像我从一开始就说的那样,我的问题与此链接php multidimensional array into jQuery上发布的问题非常相似。我唯一的问题是我真的不知道为什么他们使用json_encode()函数两次,因为我所做的一切是为了使其正常工作是删除一个json_encode()函数。
我会理解为什么我只使用jsan_encode()函数来获得我想要的结果的原因,而在大多数教程中它已经输出数据两次了。
再次感谢。
答案 0 :(得分:0)
你不需要在jQuery ajax中使用parseJSON,jQuery已经处理过了。您的数据是一个对象数组。这是使用$.each
您的getCarModels()
功能未设置为发送数据
function getCarModels(id, make){
var dataToServer={ id: id, make: make};/* need to match these keys to $_GET keys in php*/
$.get(process.php, dataToServer, function(data){
$.each( data, function(i, item){
$('body').append('<p>'+item.modelName+'</p>');
})
});
}
php也有问题,它似乎没有从ajax中寻找$ _GET传递给你的查询方法。我不认识你的PHP中使用的框架函数,但要将ID传递给pphp中的getCarModels,你需要这样的东西:
$id=$_GET['id'];
//get car make models
$models = $dl->getCarModels($id);