Я понимаю, основываясь на бесчисленных исследованиях по другим вопросам стекового обмена с похожими проблемами, что экземпляр события отменяется после события onclick, однако я не вижу способа его решить. Моя проблема заключается в том, что когда нажата радиокнопка, и ajax срабатывает и возвращает данные, я не могу получить их снова, чтобы получить следующую строку после только что полученной. Я делаю викторину, и когда пользователь нажимает правую кнопку-переключатель, он отправляет ajax запрос на получение следующего вопроса и следующего набора параметров. только изменения данных переключатели остаются неизменными только изменения данных dom.
здесь ajax:
<script>
$(document).ready(function(){
$(document).on("change", ":radio", function(){
var answer = $('input[type="radio"]:checked').val();
var question_id = $('#dataContainer').data('value');
$.ajax({
url:"quizengine.php",
method:"POST",
data:{
answer:answer,
question_id:question_id
},
dataType: 'json',
success:function(response){
$('input[type="radio"]').prop('checked', false);
var num = $('#dataContainer').data("value") + response[5];
console.log(response);
$('#instruction').html(response[0]);
$('#question').replaceWith(response[1]);
$('#answer_one').html(response[2]);
$('#answer_two').html(response[3]);
$('#answer_three').html(response[4]);
$('#dataContainer').attr("data-value",num);
}
});
});
});
</script>
and here is the php that goes with it:
<?php
if (isset($_POST['answer'])) {
global $connection;
$answer = $_POST['answer'];
$question_id = $_POST['question_id'];
$result = mysqli_query($connection, "SELECT is_right FROM answers WHERE question_id='$question_id'");
$row = mysqli_fetch_assoc($result);
if (isset($row)) {
$correct = $row['is_right'];
if ($answer === $correct) {
$next = mysqli_query($connection, "SELECT Questions.question_id,Questions.lesson,Questions.instruction,Questions.question,Questions.image,Questions.option_type,Questions.question_value,Answers.answer_one,Answers.answer_two,Answers.answer_three,Answers.is_right FROM Questions LEFT JOIN Answers ON Questions.question_id = Answers.question_id WHERE Questions.question_id>'$question_id' ORDER BY Questions.question_id ASC LIMIT 1");
$nextrow = mysqli_fetch_assoc($next);
$row_info = array($nextrow['instruction'],$nextrow['question'],$nextrow['answer_one'],$nextrow['answer_two'],$nextrow['answer_three'],$nextrow['question_id']);
echo json_encode($row_info);
exit();
}else{
echo "error";
exit();
}
}
}
?>