我在php中有以下内容:
$query = mysql_query($sql);
$rows = mysql_num_rows($query);
$data['course_num']=$rows;
$data['course_data'] = array();
while ($fetch = mysql_fetch_assoc($query) )
{
$courseData = array(
'course_name'=>$fetch['course_name'],
'training_field'=>$fetch['training_field'],
'speciality_field'=>$fetch['speciality_field'],
'language'=>$fetch['language'],
'description'=>$fetch['description'],
'type'=>$fetch['type'],
);
array_push($data['course_data'],$courseData);
}
echo json_encode($data);
当我在jquery中收到此脚本的结果时(使用post)
我使用以下方式登录:
console.log(data['course_data']);
,输出为:
[Object { course_name="Introduction to C++", training_field="Engineering" , speciality_field="Software", more...}]
但我似乎无法弄清楚如何访问元素。
我试过
data['course_data'].course_name
data['course_data']['course_name']
没有任何效果。任何想法
答案 0 :(得分:1)
您应该在第一个数组中指定索引
data['course_data'][0]['course_name'];
如果你将第一个数组定义为变量而不是数组中的变量
,那么你可以做得更好答案 1 :(得分:1)
当您array_push($data['course_data'],$courseData);
实际将$courseData
放在$data['course_data'][0]
时,您将在data['course_data'][0]['course_name']
中使用JavaScript访问它。
如果您只打算获得一个结果,而不是array_push($data['course_data'],$courseData);
,那么您应该只指定$data['course_data'] = $courseData
。否则,你应该如此迭代data['course_data']
:
for (i in data['course_data']) {
console.log(data['course_data'][i]['course_name']);
}
答案 2 :(得分:0)
$data['course_data'][0]['course_name']
应该做的伎俩。如果没有,请发送var_dump($ data)
的输出答案 3 :(得分:0)
假设PHP代码正确,您将收到如下的JSON数据:
{
"course_num":34,
"course_data":[
{
"course_name":"name_value",
....
},
....etc (other object based on SQL result)
]
}
因此,如果您想访问结果总数:
data.course_num
如果要访问结果列表的第一个元素:
data.course_data[0]
如果要访问结果列表中第一个元素的名称:
data.course_data[0].course_name
或
data.course_data[0]['course_name']
答案 4 :(得分:0)
使用jquery的parseJSON方法从json对象中获取所有好东西......