doutao8774 2015-02-07 16:29
浏览 67
已采纳

为什么我得到“无法读取未定义的属性'obj2',而不是另一个?

Hi im trying to make a script where i can get more info of an object by pressing one button but i have had some problems so far. The code works fine on the fist "Drue" when i hit "mer info" but if i try to press the "Eple" or one of the other one i get the error "Cannot read property 'objX' of undefined" where X is the name of the array in the php

This is just the code for the two first objects "Drue" and "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();
}

And this is the php code i have used

<?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);
?>

Thanks for taking a look at it

  • 写回答

1条回答 默认 最新

  • duandu8892 2015-02-07 16:30
    关注

    You are trying to access mink[0].obj2 when mink[0] doesn't exist. You could easily check for this

    if (mink) text.innerHtml = mink[0].obj;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计