Я создал систему отзывов, которая позволяет пользователю добавлять отзыв в продукт и отображать звездочки рейтинга. Поэтому, если пользователь оценил продукт на 4, он должен отображать 4 полные звезды и одну пустую звезду (как и в других системах обзора). Как я могу l oop и отображать каждый рейтинг звездочек в соответствии с отзывами пользователей?
Это данные, полученные от контроллера (console.log ())
data: Array(2)
0: "4" //This is the rating for user 1
1: "3" // This is for user 2
length: 2
Контроллер
$products = Product::where('id','=',$id)->with('reviews.user')->get();
$data = array();
foreach ($products as $product)
{
foreach ($product->reviews as $review){
$data []= $review->rating;
}
}
return response()->json(['code' => 200,'data' => $data]);
Ajax
function UserRateStars() {
$.ajax({
type: "GET",
url: '{{route('userRate.stars ', $id)}}',
success: function(data) {
document.getElementById("UserRateStars").innerHTML = UserRateStars(3.6);
// Round to nearest half
var rating = Math.round(data * 2) / 2;
let output = [];
console.log(data);
// Append all the filled whole stars
for (var i = rating; i >= 1; i--)
output.push('<div >full star</div> ');
// If there is a half a star, append it
if (i == .5) output.push('<div >half star</div> ');
// Fill the empty stars
for (let i = (5 - rating); i >= 1; i--)
output.push('<div>empty star</div> ');
return output.join('');
}
});
}
UserRateStars();