我正在使用
$.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));
});
提前感谢您的帮助。
答案 0 :(得分:0)
你不能只取消引用内部数组:
options = JSON.parse(txt1).sections;
$.each(options,function(index,item){
您还可以在PHP端更改数据结构。
答案 1 :(得分:0)
您可以根据所需的结构调整PHP JSON输出,但如果它不可行,那么您可以调整javascript代码以迭代sections
而不是根。此外,您不需要在javascript中解析JSON字符串。
$.ajax({
url:"querySections3.php",
datatype: "json",
success:function(result){
txt1 = result;
$.each(txt1["sections"],function(index,item){
$("#selectSection").append($("<option></option>").attr("value", item.sectionId).text(item.sectionText));
});