[英]Unable to access to my json data in javascript
在JSON中的jQuery请求中工作,但是我在访问数据时遇到一些问题。
我的要求是:
$(document).ready( function () {
$("#client").change( function() {
$.ajax({
type: "GET",
url: "jsonContacts.php",
data: "q="+$("#client").val(),
success: function(data){
document.form.contactClient.options.length=0;
for(var i=0; i<data.length; i++) {
document.form.contactClient.options[i]=new Option(data[i].prenom, data[i].id, false, false);
}
document.form.contactClient.options[i]=new Option("End", i, false, false);
}
});
});
});
当我放
alert(data[1].prenom);
它给了我未定义的:/
这是我的json的示例:
[{"id":"1","prenom":"Maxime","nom":"Xnate"},{"id":"3","prenom":"Test_prenom","nom":"Test_nom"}]
我的请求显示两个空选项和一个“结束”选项,因此它在数组中运行良好,但无法获取任何数据。
那么您对数据访问有任何想法吗?
谢谢
编辑:
我的json编码
$json = array();
while($contact = $requeteContact->fetch()) {
array_push($json, array("id" => $contact['idContact'],
"prenom" => $contact['CTC_Prenom'],
"nom" => $contact['CTC_Nom']));
}
echo json_encode($json);
工作方式:
$(document).ready( function () {
$("#client").blur( function() {
$.ajax({
type: "GET",
url: "jsonContacts.php",
data: "q="+$("#client").val(),
success: function(data){
document.form.contactClient.options.length=0;
for(var i=0; i<data.length; i++) {
document.form.contactClient.options[i]=new Option(data[i].prenom + " " + data[i].nom, data[i].id, false, false);
}
document.form.contactClient.options[i]=new Option("End", i, false, false);
}
});
});
});
您的数据可能只是以字符串形式返回。 您可以通过几种方式解决此问题:
1)使用getJSON。
$.getJSON('http://..',{q:$("#client").val()},function(result){
})
2)将字符串解析为JSON
JSON.parse(data);
3)将dataType设置为'json'。 如果这样做,则必须将服务器端的内容类型设置为“ application / json”。 在PHP中,它看起来像这样:
header('Content-Type: application/json');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.