嘿,夥計們我在最後一個小時一直在努力解決這個問題,並且傾注了所有舊的線程解析出JSON,但遇到了兩個問題。首先是能夠使用此代碼迭代我的兩個對象。在JQuery和Ternary語句中迭代JSON循環
<script>
$.each(data, function(index, obj) {
$.each(obj, function(key, val) {
items.push((key == "key")
? '<input type="checkbox" name="' + val + ' /> '
: '<div id="' + key + '">' + key + ': ' + val + '</div>'
});
});
</script>
使用$.each(data[0 or 1], function(key, val)
會讓我解析一個或另一個 部分雖然。
從PHP的輸出到目前爲止
[
{
"key":"4",
"role":null,
"region":"",
"inspection_type":"melons",
"inspection_number":"123",
"customer_number":"",
"report_date":"0000-00-00",
"status":"0",
"order_date":"2012-02-17 13:59:18",
"customer":"",
"customer_division":"",
"location":"",
"memo":null,
"billing_key":null,
"shipper":"",
"po":"",
"commodity":"",
"label":""
},
{
"key":"2",
"role":null,
"region":"Seattle",
"inspection_type":"berries",
"inspection_number":"1023",
"customer_number":"206-420-9564",
"report_date":"2012-10-21",
"status":"1",
"order_date":"2012-02-17 12:24:11",
"customer":"Jd Daniel",
"customer_division":"The Moon",
"location":"West Seattle, WA",
"memo":null,
"billing_key":null,
"shipper":"Shipper1",
"po":"PO1",
"commodity":"Commodity1",
"label":"Label1"
}
]
而且將永遠是很好形成。
第二個問題是我的三元聲明。當再次使用$.each(data[0 or 1], function(key, val)
時,至少會傳遞給我一個TRUE,但它不會輸出預期的<input>
框,但是是True/False?我顯然在這裏犯了許多錯誤,有人能指出我的天真嗎?
編輯
重構的代碼,三元聲明解決
試圖使用'obj.val'給我一個未定義並打破一切? – ehime 2012-02-17 23:20:37
在你的代碼中,'$ .each(data,function(key,val){','key')是一個索引,從0開始,每次迭代增加1。 (你的PHP輸出中的那些),所以你可以像這樣訪問這些屬性:'val.key'(我知道這很奇怪,因爲你的其他變量被稱爲'key',但是這是從'你可以像下面這樣獲取'status':'val.status'。在我的例子中,我用'index'和'obj'替換了你的混淆變量名稱,因爲這些變量是一個索引和一個對象(分別) 。 – Jasper 2012-02-17 23:27:11
我知道它obj.name是我的對象內的鍵的名稱,但爲了顯示所有的對象,必須有更好的方法來命名每個對象? – ehime 2012-02-17 23:28:56