谢谢,我现在通过json传递数组并将数据类型设置为json,根据您的示例:
{"car_make_id":"3","car_engine_type":"Non-Turbo Petrol"}{"car_make_id":"3","car_engine_type":"Non-Turbo Diesel"}
但我的脚本仍然拒绝附加选择选项和值?:
$("select#make").change(function(){
$('#engine').find('option').remove().end(); //clear the engine ddl
var make = $(this).find("option:selected").val(); //Need the value not the text - .Text()
//alert(make);
//do the ajax call
$.ajax({
url:'get-engine.php',
type:'GET',
data:{engine:make},
dataType:'json',
cache:false,
success:function(data){
//var parsedjson = data=JSON.parse(data); //no need if data:type json
$.each(data, function(index, item) {
$("<option/>", {
value: item.car_make_id,
text: item.car_engine_type
}).appendTo("#engine");
});
}
});
});
似乎无法找到解析数组的原因?
答案 0 :(得分:2)
JSON结构非常糟糕,所以真正的问题是修复你的JSON是合乎逻辑的。无论如何 以下是您可以尝试使用当前版本的内容:
$.ajax({
url: 'grabdata.php',
type: 'GET',
data: {
type: make
},
dataType: "json",
cache: false,
success: function (data) {
$.each(data, function (index, item) {
for( var key in item ) {}
$("<option/>", {
value: key,
text: item[key]
}).appendTo("#engine");
});
},
error: function (jxhr) {
alert(jxhr.responseText);
}
});
jsfiddle:http://jsfiddle.net/DBg2L/1/
答案 1 :(得分:0)
我不完全理解你的问题,特别是关于“所以需要ID值为1”的部分,并列出选项作为名称。“但是,以下内容将使用select
元素填充option
元素,这些元素将parsedjson
(v
)中每个属性的值作为每个属性的值和名称{{{ 1}})作为用户可见的值:
i