Вывод рейтинга товара
Пишу интернет магазин. Сделал вывод товара с БД хочу добавить рейтинг каждому товару. Звездочки настроил ну вот проблема с цифрами возле звезд. Выводится либо на первом товаре когда мышка находится на 2 или 3 товаре либо на последнем. В данный момент на последнем. При вызове товара в consol.log(data); появляются три объекта с тремя товарами. Вот мой код js:
var cart = {};
$(document).ready(function(){
//showGood();
checkCart();
showMiniCart();
});
//Кнопка вывода односпальные
$('#1x').click(function(){
$.post(
"core.php",//фаил регистрации функции в core.php
{
"action" : "init"//функция в файле function.php
},
showGoods
);
})
function showGoods(data) {
data = JSON.parse(data);
//console.log(data);
var out='';
for (var nomer in data) {
out+='<div class="goods">';
out+='<h2>'+data[nomer]['name']+'</h2>';
out+='<img src="'+data[nomer].img+'">';
out+='<button class="opis1" data-art="">Описание товара</button>';
out+='<button class="typer1" data-art="'+nomer+'"><i class="fa fa-shopping-basket" aria-hidden="true"></i>Добавить в корзину</button>';
out+='<p>Цена: '+data[nomer]['cost']+' рублей</p>';
out+='<div id="rating">';
out+='<div class="comment" id="message">Оцените этот материал:</div>';
out+='<div>';
out+='<div class="stars" id="db_'+nomer+'"></div>';
out+='<p class="progress" id="progress_id"></p>';
out+='</div>';
out+='<div class="rating" id="rating_'+nomer+'">'+data[nomer]['reyting']+'</div>';
out+='</div>';
out+='</div>';
}
$('.goods-out').html(out);
$('button.typer1').on('click', addToCart);
$(document).ready(function() {
От сюда не могу разобраться
//console.log(data);
for (var nomer in data) {
$('#db_'+nomer+'').on('mousemove', function(e){
if ($(this).hasClass('fixed')==false) move(e, $(this));
})
console.log(data);
function move (e, obj) {
//data = JSON.stringify(data);
var progress = e.pageX - obj.offset().left;
var rating = progress * 5 / $('#db_'+nomer+'').width();
obj.next().width(progress);
var d = rating - Math.floor(rating), r;
if (d<=1/3) r = Math.floor(rating);
else if (d<=2/3) r = Math.floor(rating) + 0.5;
else r = Math.ceil(rating);
$('#rating_'+nomer+'').text(r);
}
//console.log(data);
}
Вот по сюда.
$('#rating .stars').click (function(e) {
$(this).toggleClass('fixed');
move (e, $(this));
var rt = parseFloat($('#rating_id').text());
jQuery.post('php/rating.php', {
id: $(this).attr('id').substr(3), //id записи
rating: rt //рейтинг юзера
}, notice); //по завершении выполнить notice
$('#rating_id').text('');
});
function notice (text) {
var arr = text.split('#');
$('#message').fadeOut(500, function() {
$(this).text(arr[0]); //сообщение
$('#rating .stars').hide(); //убрать звездочки
$('#rating #progress_id').hide(); //и фон
$('#rating_id').text('Всего '+arr[2]+', '+arr[1]+' из 5'); //общий счет
}).fadeIn(1500);
}
});
}