Добавить +1 Проголосовать в базе данных MYSQL по клику

Поэтому я делаю игру-викторину, которая покажет процент людей, которые согласились с вами при нажатии на опцию. При нажатии отображаются результаты предыдущих игроков, и ваш голос будет добавлен в базу данных.

Я пытался выяснить это в течение достаточно долгого времени, и после прочтения многочисленных постов и просмотра большого количества видео кажется, что комбинация ajax и php — путь, я просто не могу этого понять играть хорошо.

Вот что у меня есть. (С удаленными несущественными вещами, чтобы сделать это более ясным.)

HTML

<div id="option1"></div>

Jquery

$(document).ready(function() {
$('#option1').click(function() {
var request = $.ajax({
type: "POST",
url: "clickvote.php",

});
});
});

Я чувствую, как будто это проблема. Кажется, что jquery на самом деле не вызывает php-файл, я что-то здесь упускаю, нужно ли мне вставлять некоторую форму данных в этот момент, а не в php?

PHP (clickvote.php)

<?php

include ('db_connect.php');
include ('getpageid.php');


$sql = "UPDATE questions SET votes1 = (votes1 + 1) WHERE id = {$pageid}";

mysqli_query($db,$sql);


?>

Этот PHP добавляет голосование и запускается, если я добавляю его вверху страницы с вопросом, однако он добавляет голосование при каждой загрузке страницы, а не при нажатии на вариант 1, как я хочу.

Дайте мне знать, если вам нужна дополнительная информация.

Любая помощь могла бы быть полезна!

Даниил

0

Решение

Сначала убедитесь, что ваш путь к PHP-скрипту. Используйте вашу сеть браузера, это должно вернуть успех.

Попробуйте отправить идентификатор страницы со стороны клиента

$(document).ready(function() {
$('#option1').on('click', (function() {
var request = $.ajax({
type: "POST",
url: "clickvote.php",
data: {"page" : <?php echo $page_id ?>}
});
});
});

А потом

<?php

include ('db_connect.php');
include ('getpageid.php');
$pageId = filter_input(INPUT_POST, 'page');

$sql = "UPDATE questions SET votes1 = (votes1 + 1) WHERE id = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param($pageId);
$stmt->execute();

?>

Добавьте подготовленные заявления, чтобы сделать ваш запрос безопасным.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]