Пак ще се наложи да ви тормозя с този скрипт... Извинявам се за което, но имам нужда от помощ.
На страницата имам 20 снимки и на всяка има палец нагоре и палец надолу, съответно за +1 и –1.
До тук добре и всичко функционира.. снимките са там и вотовете се записват в базата и визуализират на всяка снимка. При първо гласуване ( без значение коя снимка ) се ъпдейтва каунтара и показва новия вот, но при всяко следващо гласуване на друга снимка не се променя и не показва нищо, докато не се рефрешне страницата. След рефреш показва новите стойности.
Ще се опитам да го обясня така.
Снимка 1, Снимка 2, Снимка 3 ... Снимка_N
аз влизам и гласувам на Снимка 1. Гласа се отчита и променя +1 или - 1.. веднага след това натискам +1 на снимка 2, но нищо не се променя. Когато рефрешна страницата показва промяната на снимка 2..
Мисля, че се сещам къде е проблема, но не се сещам как да го оправя. Понеже въртя в цикъл изваждането на снимките и явно от там идва проблема понеже бутоните са с едно ID или и аз не знам точно как да го кажа.
Това е където извеждам съответния брой гласове за една снимка и бутоните на снимката
И това е .js-то
ajax-a изпраща 3-те аргумента към php-то -
type - Negative или Positive
value - 1/-1
image_id - ID-то на снимката.
success функцията променя бутона на натиснат и ненатиснат.
На страницата имам 20 снимки и на всяка има палец нагоре и палец надолу, съответно за +1 и –1.
До тук добре и всичко функционира.. снимките са там и вотовете се записват в базата и визуализират на всяка снимка. При първо гласуване ( без значение коя снимка ) се ъпдейтва каунтара и показва новия вот, но при всяко следващо гласуване на друга снимка не се променя и не показва нищо, докато не се рефрешне страницата. След рефреш показва новите стойности.
Ще се опитам да го обясня така.
Снимка 1, Снимка 2, Снимка 3 ... Снимка_N
аз влизам и гласувам на Снимка 1. Гласа се отчита и променя +1 или - 1.. веднага след това натискам +1 на снимка 2, но нищо не се променя. Когато рефрешна страницата показва промяната на снимка 2..
Мисля, че се сещам къде е проблема, но не се сещам как да го оправя. Понеже въртя в цикъл изваждането на снимките и явно от там идва проблема понеже бутоните са с едно ID или и аз не знам точно как да го кажа.
Това е където извеждам съответния брой гласове за една снимка и бутоните на снимката
Код:
$result = $pdo->prepare("SELECT t.* FROM images t order by randorder ASC LIMIT 20");
$result->execute();
for($i=0; $row = $result->fetch(); $i++)
{
$cookie_name = 'vote'.$row['image_id']; // Set up the cookie name
$value = $pdo->prepare('SELECT * FROM voting WHERE image_id= ?'); // BDD query, page ID values
$value->bindParam(1, $row['image_id'], PDO::PARAM_INT);
$value->execute();
$vote = $value->fetch();
echo '
if (isset($_COOKIE[$cookie_name])) {
echo '<div class="vote_up_done oneLine"></div>
<div class="numberVoted oneLine">'.$vote['positive'].'</div>';
}
else
{
echo '<div class="vote_up oneLine" id="voteUp"><a href="#" onclick="vote(\'positive\', \'1\', '.$row['image_id'].'); return false;"></a></div>
<div class="number oneLine" id="positive">'.$vote['positive'].'</div>';
}
if (isset($_COOKIE[$cookie_name])) {
echo '<div class="vote_down_done oneLine"></div>
<div class="numberVoted oneLine">'.$vote['negative'].'</div>';
}
else
{
echo '<div class="vote_down oneLine" id="voteDown"><a href="#" onclick="vote(\'negative\', \'1\', '.$row['image_id'].'); return false;"></a></div>
<div class="number oneLine" id="negative">'.$vote['negative'].'</div>';
}
// snimkata
Код:
function vote(type, value, image_id) {
var dataFields = {'type': type, 'value': value, 'image_id': image_id};
$.ajax({ // Ajax
type: "POST",
url: "misc/ad_vot.php",
data: dataFields,
timeout: 3000,
success: function(dataBack){
$('#' + type).html(dataBack);
$('#voteUp').attr('class', 'vote_up_done oneLine');
$('#voteDown').attr('class', 'vote_down_done oneLine');
$('#positive').attr('class', 'numberVoted oneLine');
$('#negative').attr('class', 'numberVoted oneLine');
$('#message').html('<div id="alertFadeOut" style="color: green">Вашят вот е добавен!</div>');
// $('#' + type+"_"+image_id).html(dataBack);
$('#alertFadeOut').fadeOut(3000, function () {
$('#alertFadeOut').text('');
});
},
error: function() {
$('#message').text('Неуспешен вот. Моля опитайте отново.');
}
});
}
type - Negative или Positive
value - 1/-1
image_id - ID-то на снимката.
success функцията променя бутона на натиснат и ненатиснат.