为什么我得到"无法阅读财产' obj2'未定义的#34;在一个而不是另一个?

时间:2015-02-07 16:29:02

标签: javascript php arrays ajax

嗨我试着制作一个脚本,我可以通过按一个按钮获得更多的对象信息,但到目前为止我遇到了一些问题。当我点击“mer info”时,代码在第一个“Drue”上正常工作但如果我试图按下“Eple”或另一个中的一个我得到错误“无法读取未定义的属性'objX',其中X是php中数组的名称

这只是两个第一个对象“Drue”和“Eple”

的代码
    var request = new XMLHttpRequest();

request.onreadystatechange = function () {              
    if (request.readyState == 4 && request.status == 200) {
        var response = request.responseText;
        var mink = JSON.parse(request.responseText);
        text.innerHTML = mink[0].obj1;
        epletext.innerHTML = mink[1].obj1;
        banantext.innerHTML = mink[2].obj1;
        orangetext.innerHTML = mink[3].obj1;
    } else {
        text.innerHTML = "pissing..."; 
        epletext.innerHTML = "pissing..."; 
        banantext.innerHTML = "pissing..."; 
        orangetext.innerHTML = "pissing..."; 
    }
}
request.open("GET", "info.php", true);
request.send();

btn.onclick = function (){
    request.onreadystatechange = function () {              
        if (request.readyState == 4 && request.status == 200) {
            if (drue == 0) {
                var response = request.responseText;
                var mink = JSON.parse(request.responseText);
                text.innerHTML = mink[0].obj2;
                drue = 1;
            } else {
                var response = request.responseText;
                var mink = JSON.parse(request.responseText);
                text.innerHTML = mink[0].obj1;
                drue = 0;
            }                   
        } else {
            text.innerHTML = "pissing..."; 
        }
    }
    request.open("GET", "info.php", true);
    request.send();
}

eple.onclick = function (){
    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            if (eplenr == 0) {
                var response = request.responseText;
                var mink = JSON.parse(request.responseText);
                epletext.innerHTML = mink[1].obj2;
                eplenr = 1;
            } else {
                var response = request.responseText;
                var mink = JSON.parse(request.responseText);
                epletext.innerHTML = mink[1].obj1;
                eplenr = 0;
            }

        } else {
            epletext.innerHTML = "pissing..."; 
        }
    }
    request.open("GET", "info.json", true);
    request.send();
}

这是我用过的PHP代码

<?php
$shop = array( 
            array( "obj1" => "en fin kladd druer", 
                   "obj2" => "en nydelig kladd med ferske druer hentet fjellene i frankrike, gravd ned ved røttene til palmene i Miama og fryst i isen på Grønnland for å gi den perfekte smaken de har",
                ),
            array( "obj1" => "et grønnt og fint eple", 
                   "obj2" => "et fantastisk eple hentet fra hagen til Gjermung",
                ),
            array( "obj1" => "en pakke er på 4 bananer", 
                   "obj2" => "Bananene er håndplukket av slaveaper i skogene i Atlantis",
                ),
            array( "obj1" => "store appelsiner", 
                   "obj2" => "disse appelsiene er det ikke noe spessielt med, de er helt vanlige, noen av dem har litt mugg på seg",
                )
);


header('Content-Type: application/json');
echo json_encode($shop);
?>

感谢你看一下

1 个答案:

答案 0 :(得分:0)

mink[0].obj2不存在时,您正试图访问mink[0]。你可以轻松检查这个

if (mink) text.innerHtml = mink[0].obj;