Php 无法读取未定义/未定义属性的属性

Php 无法读取未定义/未定义属性的属性,php,jquery,ajax,Php,Jquery,Ajax,我的数组正在返回信息,其中的数据不为null,但它仍然会显示以下错误: 未捕获类型错误:无法读取未定义或未捕获引用的属性“date\u appeal\u received”错误:未定义日期\u appeal\u received 我试过: console.log(result.parcel[1].date_appeal_received); console.log(result.parcel[1][date_appeal_received]); console.log(result.pa

我的数组正在返回信息,其中的数据不为null,但它仍然会显示以下错误:

未捕获类型错误:无法读取未定义或未捕获引用的属性“date\u appeal\u received”错误:未定义日期\u appeal\u received

我试过:

console.log(result.parcel[1].date_appeal_received);  
console.log(result.parcel[1][date_appeal_received]);  
console.log(result.parcel[1]["date_appeal_received"]);  
如果我只放置console.logresult,它将完全返回数组;但我需要将选择属性值放入输入框中

代码如下:

PHP

数组结果:

{
    "parcel": [{
        "parcel_id": "89415",
        "tax_year": "2012",
        "apn": "134-44-114",
        "vin": null,
        "owner_name": "BARRERA DIANE",
        "in_care_of": null,
        "mailing_address_1": "2402 W RIVIERA DR",
        "mailing_address_2": null,
        "city_state_zip": "TEMPE AZ 85282",
        "suite": null,
        "country": null,
        "initial_mail_date": "2012-05-11",
        "initial_return_date": null,
        "final_mail_date": "2012-07-13",
        "final_return_date": null,
        "reclass_mail_date": "2012-09-11",
        "bos_meeting_date": "2012-10-17",
        "date_appeal_received": "2012-09-18",
        "late_returns_date": null,
        "determination_notice_sent_date": null,
        "response_code": "No Response",
        "email_address": "dianefm@cox.net",
        "phone_number": "4807734925",
        "notification_type": null,
        "analysis_recommendation": "3",
        "final_determination": "A",
        "account": null,
        "revised_legal_class": null,
        "other": null,
        "change_address_request": null,
        "determination_notice_sent": null,
        "appeal_address_match": null,
        "situs_address_1": "2402 W RIVIERA DR",
        "situs_address_2": null,
        "situs_city_state_zip": "TEMPE AZ 85282",
        "owner_city": null,
        "owner_state": null,
        "owner_zip": null,
        "situs_city": null,
        "situs_state": null,
        "situs_zip": null,
        "penalty_amount": null,
        "penalty_mail_date": null,
        "penalty_appeal_recieved_date": null,
        "penalty_bos_meeting_date": null,
        "penalty_determination_notice_sent_date": null,
        "penalty_determination": null
    }],
    "comment_count": "9"
}

数组中的第一个索引是0,而不是1。您的地块数组中只有一个条目:result.parcel[0]。如果您想知道上诉人收到其财产的日期,则应为:

console.log(result.parcel[0].date_appeal_received);
但您的成功功能从以下代码开始:

$('#ViewComments').val('View ' + result.comment_count + ' Comments');
if (result.parcel[0].apn != null){ $('#ParcelNumber').html(result.parcel[0].apn)
} else { $('#ParcelNumber').html(" "); }
console.log(result.parcel[1].date_appeal_received); // <=== Problem line
如果您只是尝试获取与apn相同的对象result.parcel[0]上的其他属性,请继续使用result.parcel[0]:

或保存所有键入和冗余查找:

var parcel = result.parcel[0];
console.log("APN: " + parcel.apn);
console.log("Date received: " + parcel.date_appeal_received);
// ...and so on
旁注:

这也适用于从第一个条目获取属性:

console.log(result.parcel[0]["date_appeal_received"]);

…因为在JavaScript中,您可以使用点符号和文字属性名foo.bar访问属性,也可以使用括号符号和字符串属性名foo[bar]。

@t-j-crowder我已经在使用索引零了。这是我试图检索的第二个属性。如果结果为.packet[0].apn!=null{$'ParcelNumber'.htmlresult.ParcelNumber[0].apn}else{$'ParcelNumber'.html;}@maryjane9110024:成功函数中有这一行,周围没有任何条件:console.logresult.parcel[1]。收到上诉的日期;这将导致错误。@t-j-crowder,即使有数据?我有一个条件,但我将其取出,以便在属性上执行console.log,查看它是否返回。@maryjane9110024:有数据,但仅在result.parcel[0]中。在我上面引用的行中,您使用的是result.parcel[1]。收到的数据。result.parcel[1]未定义,因为result.parcel中没有第二个条目。然后您尝试从未定义中读取属性。要么先检查result.parcel.length,要么像这样做:if result.parcel[1]{…}@t-j-crowder噢,我现在明白了。。。好啊我认为数组中的每个属性都是一个项,而不是整个数组本身。很抱歉非常感谢你,TJ!!
if (result.parcel[1]) {
    // ...use result.parcel[1].whateverPropertyHere
}
console.log("APN: " + result.parcel[0].apn);
console.log("Date received: " + result.parcel[0].date_appeal_received);
// ...and so on
var parcel = result.parcel[0];
console.log("APN: " + parcel.apn);
console.log("Date received: " + parcel.date_appeal_received);
// ...and so on
console.log(result.parcel[0]["date_appeal_received"]);