我使用
$.each(txt2,function(index,item){
$("#selectSection").append($("<option></option>").attr("value", item.sectionId).text(item.sectionText));
它的工作原理,如果我硬編碼以下JSON:
[{"sectionId":"1","sectionText":"Section One"},{"sectionId":"2","sectionText":"Section Two"},{"sectionId":"3","sectionText":"Section Three"},{"sectionId":"4","sectionText":"Section Four"},{"sectionId":"5","sectionText":"Hull"},{"sectionId":"6","sectionText":"Topside"}]
然而,當PHP返回JSON包含如下所示的多數組名稱,這會破壞代碼。
{"sections":[{"sectionId":"1","sectionText":"Section One"},{"sectionId":"2","sectionText":"Section Two"},{"sectionId":"3","sectionText":"Section Three"},{"sectionId":"4","sectionText":"Section Four"},{"sectionId":"5","sectionText":"Hull"},{"sectionId":"6","sectionText":"Topside"}]}
任何想法?
對於背景,以下是我正在使用的代碼。該代碼完全符合實際的ajax查詢結果註釋和json硬編碼。我只提供它的背景。
$.ajax({
url:"querySections3.php",
datatype: "json",
success:function(result){
//txt1 = result;
txt2 = [{"sectionId":"1","sectionText":"Section One"},{"sectionId":"2","sectionText":"Section Two"},{"sectionId":"3","sectionText":"Section Three"},{"sectionId":"4","sectionText":"Section Four"},{"sectionId":"5","sectionText":"Hull"},{"sectionId":"6","sectionText":"Topside"}]
//options = JSON.parse(txt1);
$.each(txt2,function(index,item){
$("#selectSection").append($("<option></option>").attr("value", item.sectionId).text(item.sectionText));
});
在此先感謝您的任何幫助。
'$ .each'不處理JSON。因此,要弄清楚*實際數據是什麼*(例如,使用網絡瀏覽器調試器)以及爲什麼它「不起作用」。在這種情況下,它看起來像代碼只是*不*處理與「失敗的數據」有意義的數據。 – user2864740
嘗試'result.sections'像'txt1 = result.sections'然後'$ .each(txt1,function(){})' –
爲什麼PHP返回一個對象,如果你只是想要一個數組? – Barmar