Здравейте за пореден път. Продължавам да се мъча с тази система за гласуване, като сега не ми е ясно точно как ще стане следното.
При натискане на гласуване ако снимката с това ID няма гласове до момента да създава нов запис за нея в таблицата. При последващо гласуване за същата снимка да ъпдейтва вече съществуващия запис.
Това е текущия код
в ajax-a подавам следното
В момента ако отворя снимка, която няма вотове и натисна +1 създава нов запис, но добавя +1 и за vote_up и за vote_down. Следващото гласуване вече си е нормално и добавя само за + или -.
Според мен и моите разбирания проблема е ето тук
тъй като към ad_vote.php се подават: type': type, 'value': value, 'pageId': pageId}; // We pass the 3 arguments, type: positive or negative ; value=1 ; pageId: here 5
Как точно да подам тези параметри в инсърта? В мисъл
type приема + или - (positive или negative)? Нещо не мога да си го обясня в array-a..
При натискане на гласуване ако снимката с това ID няма гласове до момента да създава нов запис за нея в таблицата. При последващо гласуване за същата снимка да ъпдейтва вече съществуващия запис.
Това е текущия код
Код:
$type = $_POST['type'];
$value = $_POST['value'];
$pageId = $_POST['pageId'];
$value = $pdo->prepare('SELECT * FROM voting_system WHERE page_id= ?'); // BDD query, page ID values
$value->bindParam(1, $_POST['pageId'], PDO::PARAM_INT);
$value->execute();
$result = $value->fetch();
if( $result > 0) {
$query = $pdo->prepare('UPDATE voting_system SET '.$type.' = '.$type.' + 1 WHERE page_id= :pageId');
$query -> execute(array(
":pageId" => $_POST['pageId']
));
}
else
{
$type = $_POST['type'];
$value = $_POST['value'];
$pageId = $_POST['pageId'];
$query = $pdo -> prepare("INSERT INTO voting_system (page_id,positive,negative)
VALUES (:pageId, :positive, :negative)");
$query -> execute(array(
":pageId" => $_POST['pageId'],
":positive" => $value,
":negative" => $value
));
}
Код:
function vote(type, value, pageId) {
var dataFields = {'type': type, 'value': value, 'pageId': pageId}; // We pass the 3 arguments, type: positive or negative ; value=1 ; pageId: here 5
$.ajax({ // Ajax
type: "POST",
url: "ad_vot.php",
data: dataFields,
timeout: 3000,
success: function(dataBack){
$('#' + type).html(dataBack); // Change the new value in id="positive" or id="negative" DIV
$('#voteUp').attr('class', 'vote_up_done oneLine'); // Change image by design/vote-up-done.png grey icon
$('#voteDown').attr('class', 'vote_down_done oneLine'); // Change image by design/vote-down-done.png grey icon
$('#positive').attr('class', 'numberVoted oneLine'); // Change the number's color by a grey one for the "positive" DIV
$('#negative').attr('class', 'numberVoted oneLine'); // Change the number's color by a grey one for the "negative" DIV
$('#message').html('<div id="alertFadeOut" style="color: green">Вашят вот е добавен!</div>'); // Diplay message with a fadeout
$('#alertFadeOut').fadeOut(1000, function () {
$('#alertFadeOut').text('');
});
},
error: function() {
$('#message').text('Неуспешен вот. Моля опитайте отново.');
}
});
}
Според мен и моите разбирания проблема е ето тук
Код:
$query = $pdo -> prepare("INSERT INTO voting_system (page_id,positive,negative)
VALUES (:pageId, :positive, :negative)");
$query -> execute(array(
":pageId" => $_POST['pageId'],
":positive" => $value,
":negative" => $value
));
Как точно да подам тези параметри в инсърта? В мисъл
type приема + или - (positive или negative)? Нещо не мога да си го обясня в array-a..