Итак, у меня есть этот код javascipt, который вычисляет 8 вопросов викторины из html-формы и возвращает итоговую оценку. Моя цель - представить пользователю оценку, которую он получил, но также сохранить оценку с помощью ajax в php, чтобы я мог сохранить ее в своей базе данных. Прямо сейчас моя функция успеха ajax обнаруживается, когда я нажимаю на submit, поэтому я предполагаю, что метод post работает, но мой php-код не обновляет базу данных ..
В настоящее время я так и поступаю.
<script>
document.getElementById("form1").onsubmit=function() {
q1 = parseInt(document.querySelector('input[name = "q1"]:checked').value);
q2 = parseInt(document.querySelector('input[name = "q2"]:checked').value);
q3 = parseInt(document.querySelector('input[name = "q3"]:checked').value);
q4 = parseInt(document.querySelector('input[name = "q4"]:checked').value);
q5 = parseInt(document.querySelector('input[name = "q5"]:checked').value);
q6 = parseInt(document.querySelector('input[name = "q6"]:checked').value);
q7 = parseInt(document.querySelector('input[name = "q7"]:checked').value);
q8 = parseInt(document.querySelector('input[name = "q8"]:checked').value);
result = q1 + q2 + q3 + q4 + q5 + q6 + q7 + q8;
document.getElementById("grade").innerHTML = result;
return false; // required to not refresh the page; just leave this here
} //this ends the submit function
$.ajax({
url: 'quiz1.php',
type: 'POST',
data : {name: 'result', value: result},
success: function(data) {
alert('yay');
}
});
</script>
И PHP-код выглядит так:
<?php
session_start();
include("phpbook-vars.inc");
$database="yr1005";
$connect=mysqli_connect($hostname,$user,$password);
mysqli_select_db($connect, $database);
$username = $_SESSION['username'];
$score = isset($_POST['result']);
$query = "INSERT INTO quiz1 (username, quiz1)
VALUES ('anything', '$score)";
if(!mysqli_query($connect, $query)) {
echo "<h2>Error - couldn't save quiz grade</h2>";
header ("refresh:3; url=hciQ.html");
} else {
echo "<h2>Thanks your grade was recorded</h2>";
header ("refresh:3; url=hciQ.html");
}
?>