我有Json返回的数据,但不知怎的,我无法打印出来。
这是我的javascript
jQuery( document ).ready( function( $ ) {
$('select[name="country_id"]').on('change', function() {
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }
});
var CountryId = $(this).val();
if(CountryId) {
$.ajax({
url: '{{ url('profilegetStateList') }}/'+encodeURI(CountryId),
type: "GET",
dataType: "json",
success:function(data) {
console.log(data);
// $('select[name="state_id"]').empty();
// $('select[name="state_id"]').empty().append('<option value='+ data +' selected>'+data+'</option>');
}
});
}else{
$('select[name="state_id"]').empty().append("<option value='' selected>Select</option>");
}
});
});
我已尝试data
,data->name
,data['name']
所有人都返回[object object]
这是我的控制台打印在console.log(data);
[]
length: 0
__proto__: Array []
[…]
0: Object { id: 1, name: "ACEH", country_id: 101 }
1: Object { id: 16, name: "BALI", country_id: 101 }
2: Object { id: 15, name: "BANTEN", country_id: 101 }
.....
length: 32
__proto__: Array []
任何想法?
答案 0 :(得分:2)
通过查看您的代码,我认为注释的代码应该像
var options = '';
data.forEach(function(country) {
options += '<option value='+ country.id +' selected>'+country.name+'</option>'
})
$('select[name="state_id"]').empty().append(options);
答案 1 :(得分:0)
您正在安慰的数据是数组格式。 您需要访问对象的每个索引。 试试这个内部成功函数,
for(var i=0;i<data.length;i++ ){
console.log('name-',i,'= ',data[i].name)
}
答案 2 :(得分:0)
[object Object]是javascript中对象的默认toString表示。
如果你想知道对象的属性,可以像这样预先知道:
for(var property in data) {
alert(property + "=" + data[property]);
}
<强>更新强>
for(var property in data) {
if(data[property]){
console.log(data[property])
}
}
答案 3 :(得分:0)
Cant Comment ..所以这里是@Aswin Ramesh的补充: 也许从选项属性中删除选定的属性,并将其仅添加到第一个选项。这是OP的错误