使用Laravel 4以HTML格式显示JSON数据

时间:2013-11-22 12:17:12

标签: php ajax json laravel-4

请帮我解决将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

2 个答案:

答案 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"