我正在尝试将此JSON数组附加到选择框
{
"10":"Branche",
"2":"Marketing & Comunicatie",
"8":"Test Branche 1",
"9":"Test Branche 2",
"6":"Test Branche 3",
"7":"Test Branche 4",
"1":"Webdevelopment & design"
}
但它没有工作我从PHP数组编码它。这就是我试图循环它的方式。
this.addOption = function(name, table, value){
$.ajax({
type: "POST",
data: {action:'add', table:table, value:value},
url: "index.php",
})
.done(function( obj ) {
$("#"+name+"-select").empty()
console.log(name);
$.each(obj, function( key, value ) {
$("#"+name+"-select").append('<option value='+key+'>'+value+'</option>');
});
});
}
其中obj是JSON数组。
它给了我这个错误:
答案 0 :(得分:3)
看来您的PHP正在输出内容类型为text/html
的JSON,并且因为您没有告诉jQuery您期望JSON,它不会解析响应,最后您会'重新尝试在字符串上调用$.each
。
添加一个dataType,告诉jQuery将响应显式解析为JSON:
$.ajax({
type: "POST",
data: {action:'add', table:table, value:value},
url: "index.php",
dataType: 'json'
})
或者,在PHP中设置正确的内容类型:
header('Content-type: application/json');
echo json_encode(...);
答案 1 :(得分:0)
是的,您可以使用以下方式:
for(k in obj) {
$("#branch-select").append('<option value='+k+'>'+obj[k]+'</option>');
}