请帮我解决将JSON数据显示到视图中的问题..
我的脚本是:
$('#supplierId').change(function(){
$.get("{{ url('api/dropdown')}}",
{ option: $(this).val() },
function(data) {
var firstnameID = $('#firstnameID');
$.each(data, function(index, element) {
firstnameID.val(element.first_name);
});
});
});
我的JSON回复是:
{"id":7,"first_name":"John","last_name":"Doe"}
事情是我试图:
alert(element.first_name);
它表示未完成,但当我:
alert(element);
它给我的姓氏是Doe的值。我的问题是如何才能访问ID和名字等其他值..
编辑:
这是我的路线:
Route::get('api/dropdown', function(){
$input = Input::get('option');
$supllier = Supplier::find($input);
returnResponse::json($supllier->select(array('id','first_name','last_name'))
->find($input));
});
请帮助我这个,这是我第一次使用JSON,所以我有点混淆这是如何工作的。
最诚挚的问候 -Melvn
答案 0 :(得分:3)
你为什么要使用它们?这应该有效:
$('#supplierId').change(function(){
$.get("{{ url('api/dropdown')}}",
{ option: $(this).val() },
function(data) {
var firstnameID = $('#firstnameID');
firstnameID.val(data.first_name);
});
});
答案 1 :(得分:2)
好的,试一试..
使用dataType
option in get()
明确说明您希望从服务器返回的内容是JSON。
$('#supplierId').change(function()
{
$.get("{{ url('api/dropdown')}}",
{ option: $(this).val() },
function(data)
{
var firstnameID = $('#firstnameID');
$.each(data, function(index, element)
{
firstnameID.val(element.first_name);
});
},
'json' // <<< this is the dataType
);
});
现在您应该能够使用点语法访问数据:
console.log("last_name: " + element.last_name);
console.log("first_name: " + element.first_name);
console.log("id: " + element.id);
我会添加另外几行,只是为了检查你是否收到了你期望看到的内容:
console.log("NEW ELEMENT"); // << indicator in the console for your reference
console.log(element); // << the whole "element"