使用Ajax代码在Table中显示数组值。

时间:2018-08-15 11:34:58

标签: html ajax laravel

这是我的代码尝试过的

<script type="text/javascript">
    $('#doctorselected').on('change', function(e){
      console.log(e);
      var doctorid = e.target.value;
      var url = '{{URL::to('getdocDetails')}}';
      $.ajax({
         type : 'get',
         url  : url,
         data : {'doctorid':doctorid},
         success:function(data){
           console.log(data);
           var d = $.parseJSON(data);
           console.log(d);
            var output = '';
            $.each(d,function(i,e) {
                output += '<tr><td>'+e.products+'</td></tr>'
            });
            $('#tbody').append(output);
         },
         error:function(data)
         {
           console.log(data);
         }
    });
  });
  </script>

这是此代码的输出,

当我选择下拉列表时,将显示所有数组值,例如 A,B,C,D

我要在每行中显示一个值

喜欢

A
B
C 
D

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您作为each方法的输入发送的数组目前只有一个项目,一个具有键products的对象,以及带有逗号分隔的产品列表的值,在这种情况下为Crocin和锡纳莱斯特:

[{ 
    products: "Crocin,Sinarest" 
}]

结果,列表将仅包含并显示一个项目,即该对象。

您需要将对象转换为包含产品的数组,以呈现列表。我建议在后端执行此操作。您可以使用explode(",", "Crocin,Sinarest");

如果您不想更改后端,则可以在JavaScript中执行以下操作:

$.each(d[0].products.split(","), function (index, product) {
    output += '<tr><td>' + product + '</td></tr>'
});

希望这会有所帮助!