【问题标题】:How to loop Ajax response in blade如何在刀片中循环 Ajax 响应
【发布时间】:2020-07-02 00:29:42
【问题描述】:

我正在使用 Ajax 从数据库中获取数据,现在我想循环从数据库中获得的响应,但是我卡住了,不知道如何循环它。任何帮助将不胜感激。

//这就是我使用 Laravel 循环的方式(我想用 Ajax 像这样循环)

@foreach(range(1,5) as $i)
@if($total >0)
@if($total >0.5)
 <div>Full star</div>
@else
<div >Half star</div>
@endif
@else
 <div >Empty star</div>
@endif
<?php $total--; ?>
@endforeach

//这是来自 Ajax 的响应,显示来自数据库的总数

<span id="mycount"></span> 

阿贾克斯

function getCount() {
$.ajax({
type: "GET",
url: '{{route('live.review')}}',
success: function(data) {
   $('#mycount').html(data);
   setTimeout(getCount, 1000);
}
});

}
getCount();

【问题讨论】:

  • 您通过 Ajax 调用收到的数据是什么?
  • 是评级(数字,从 1 到 5),因此用户可能会给产品评分 5 星或 4 星或 2 星@Sandeep Modak
  • 您收到的是 json 数据还是只是 html/text。在您的查询中添加响应。
  • 我收到 Json 数据并像这样在刀片中显示 &lt;span id="mycount"&gt;&lt;/span&gt; 所以这一行输出是数字,如果它是 5,那么它显示 5 @SandeepModak

标签: php jquery ajax laravel laravel-5


【解决方案1】:

您不能使用 Blade 循环通过 Ajax 请求。刀片模板在服务器端呈现,jQuery 在客户端浏览器上运行。您必须使用 javascript 来执行此操作。

一种方法是:

success: function(data) {
   for(item of data){
     $('#mycount').append(`<div>${item}</div>`)
   }
}

我不知道您要达到什么目标或获得什么类型的数据,但这是让您入门的东西。

【讨论】:

  • 我尝试了你的方法,但至少有点工作但卡在 for 循环中,我想使用像 @foreach(range(1,5) as $i) 这样的循环,但在 Ajax 中。 @dsat
  • 您的代码似乎是一个无限循环(它永远递归)。不要从内部调用 getCount() 。除此之外,我需要查看您获得的数据才能提供更多帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
  • 2016-07-04
  • 1970-01-01
相关资源
最近更新 更多