我正在尝试做什么:我正在尝试做一个购物车,每次点击一个项目时都不会重新加载页面,但是会在会话中保存所选项目。
所以在用户点击“添加”后,我会将值添加到我的会话中,然后我将解析json数组中的会话值,并将整个“产品列表”附加到购物车中。
问题在于,由于某种原因,它为data.dados [0] .id_prod打印“未定义”,而它应该打印产品的ID ..
所以,这是我的控制器:
//get the ajax ‘get’ ...
if (isset($_GET[‘id_prod’]) && !empty($_GET[‘id_prod’]) && isset($_GET[‘qnt’]) && !empty($_GET[‘qnt’])) {
$ma = $this->loja_model->add_carrinho($_GET[‘id_prod’], $_GET[‘qnt’]);
$carr = $this->loja_model->list_carrinho();
if ( isset($carr) && !empty($carr) ) {
$array[‘data’][‘dados’]=$carr[0];
$array[‘data’][‘valor’]=$carr[1];
echo json_encode($array);
}
}
并在调用$ .ajax后打印此json对象:
{“data”:
{“dados”:
[
{“id_prod”:“1”,“id_cat”:“4”,“produto”:“Barco Velho”,“descricao”:“Barco de madeira tipo canoa.”,“valor”:“100.00”,“custo”:“0”,“qnt”:49},
{“id_prod”:“2”,“id_cat”:“1”,“produto”:“Fusca 68”,“descricao”:“Raridade. Impec?vel. Roda. Trio. Som. Estepe original.”,“valor”:“4000.00”,“custo”:“0”,“qnt”:11},
{“id_prod”:“3”,“id_cat”:“2”,“produto”:“MonoMoto”,“descricao”:“Moto de uma roda s?”,“valor”:“18000.00”,“custo”:“0”,“qnt”:2}
],
“valor”:84900}
}
这是我的JS档案:
$.ajax({
url: ‘http://mdk-store.com/loja/index.php/lojavirtual/index’,
data: data_prod,
type: ‘GET’,
dataType: ‘json’,
async: true,
success: function(data) {
window.alert(data[0].id_prod);
}
});
答案 0 :(得分:1)
根据你应该使用的JSON:data.data.dados[0].id_prod
。
为了以您期望的方式访问数据,您的JSON需要如下所示:
[
{“id_prod”:“1”,“id_cat”:“4”,“produto”:“Barco Velho”,“descricao”:“Barco de madeira tipo canoa.”,“valor”:“100.00”,“custo”:“0”,“qnt”:49},
{“id_prod”:“2”,“id_cat”:“1”,“produto”:“Fusca 68”,“descricao”:“Raridade. Impec?vel. Roda. Trio. Som. Estepe original.”,“valor”:“4000.00”,“custo”:“0”,“qnt”:11},
{“id_prod”:“3”,“id_cat”:“2”,“produto”:“MonoMoto”,“descricao”:“Moto de uma roda s?”,“valor”:“18000.00”,“custo”:“0”,“qnt”:2}
]