繁体   English   中英

无法访问JavaScript中的json数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM