我在IE上遇到了很奇怪的错误。我使用下面的代码发出ajax请求以从数据库获取数据,并使用该数据创建下拉选项<option>
。事情是在IE上数据没有正确显示,它只显示数据的第一个字符,但在其他浏览器上数据显示正确。我也尝试打印出数据,数据是正确的。
所以我怀疑我的Jquery选择或追加是错误的并尝试在ajax调用之外附加一些垃圾数据并且数据正确显示但是然后我再把那些代码放在ajax中并且它不再显示...我真的没有了现在就知道..你们这个家伙可以帮助我吗?我已经测试过FF,Chrome和Safari它们都运行良好......
$.ajax({
cache: false,
type: "POST",
url: "<?php echo $this->baseUrl(); ?>/rewards/getdiscounttype/",
data: { esid: estore_id }
}).done(function( data ) {
var obj = jQuery.parseJSON(data);
jQuery.each(obj, function (i, app) {
//alert(i+app['discount_type']);
var sel = $('select[name=discount_type'+id+']');
sel.append('<option value="'+app['id']+'">'+app['discount_type']+'</option>');
});
});
答案 0 :(得分:2)
$.ajax({
cache: false,
type: "POST",
url: "<?php echo $this->baseUrl(); ?>/rewards/getdiscounttype/",
data: { esid: estore_id },
datatype: "json",
succes: function(jsonData){
$.each(jsonData,function(i,app){
var sel = $('select[name=discount_type'+i+']');
sel.append('<option value="'+app.id.+'">'+app.discount_type.+'</option>');
});
},
error: function(e){
}
})
试试这个,我觉得把JSON当作app.id这样的对象来代替app ['id']会更好。没有太多时间做一些测试,我会告诉你你收到的我可以测试的json。
答案 1 :(得分:0)
立即使用JavaScript!
$.ajax({
cache: false,
type: "POST",
url: "<?php echo $this->baseUrl(); ?>/rewards/getdiscounttype/",
data: { esid: estore_id }
}).done(function( data ) {
var obj = jQuery.parseJSON(data);
/* clearing options with JS since jQuery cleare the select in the DOM but enter code herenot on screen. */
$('select[name=discount_type'+id+']')[0].options.length = 0;
$('select[name=discount_type'+id+']').children().remove().end().append('');
jQuery.each(obj, function (i, app) {
var sel = $('select[name=discount_type'+id+']');
sel.append('<option value="'+app.id+'">'+app.discount_type+'</option>');
});
});