PHP проверяет, нажата ли кнопка радио
Я хочу знать, если пользователь нажимает кнопку отправки, он проверит, проверяет ли пользователь все радиокнопки.
Это то, что я пробовал до сих пор:
$stmt = $conn->prepare( "SELECT *
FROM tblquiz ORDER BY rand()" );
$stmt->execute();
?>
<form method="post" action="checkquiz.php">
<?php
$number = 0;
for($i=0; $row = $stmt->fetch(); $i++){
$number++;
$id = $row['_id'];
$question = $row['question'];
$answers = array($row['answer1'],$row['answer2'],$row['answer3'],$row['correctanswer']);
shuffle($answers);
?>
<h4> <?php echo $number . ".) " . $question; ?></h4>
<label><input type="radio" value="<?php echo $answers[0]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[0]; ?></label>
<label><input type="radio" value="<?php echo $answers[1]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[1]; ?></label>
<label><input type="radio" value="<?php echo $answers[2]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[2]; ?></label>
<label><input type="radio" value="<?php echo $answers[3]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[3]; ?></label>
<?php
}
?>
<br />
<br />
<input type="submit" value="Submit" name="submit">
</form>
CheckQuiz.php
<?php
if( isset($_POST['submit'])) {
//echo 'You clicked submit!';
if( ){
} else {
}
} else {
echo "You didn't click submit!";
}
?>
Я новичок, поэтому мне очень нужна ваша помощь. Я хочу сначала проверить, все ли переключатели были проверены, а затем проверить, отвечает ли пользователь. Можете ли вы дать мне примеры реализации этого? Ваша помощь будет по-настоящему оценена. Спасибо.
2 ответа
Сначала вы должны назвать все ваши радио кнопки с одинаковым именем. Скажи его зовут question
, пример ниже
<input type="radio" name="question" value="1">
<input type="radio" name="question" value="2">
<input type="radio" name="question" value="3">
<input type="radio" name="question" value="4">
Затем вы можете получить доступ к его значению с сервера как
if(isset($_POST["question"])){
echo $_POST["question"];
}else{
echo "No answers were selected";
}
отредактировано в соответствии с потребностями пользователя
если у вас есть несколько вопросов, то вы можете использовать, как показано ниже
Question 1:
<input type="radio" name="question[1]" value="1">
<input type="radio" name="question[1]" value="2">
<input type="radio" name="question[1]" value="3">
<input type="radio" name="question[1]" value="4">
Question 2:
<input type="radio" name="question[2]" value="1">
<input type="radio" name="question[2]" value="2">
<input type="radio" name="question[2]" value="3">
<input type="radio" name="question[2]" value="4">
Тогда вы можете повторить как показано ниже:
$quest = $_POST['question'];
foreach($quest as $key=>$val){
echo "Question ".$key." answer is ".$val."<br/>";
}
if(isset($_POST["radioBoxName"])){
// It was checked
echo $_POST["radioBoxName"]; // This is the value of the checked option
}
Редактировать на основе комментариев
Если у вас есть, скажем, 10 вопросов с 4 разными ответами на каждый, вы можете назвать свои радио-боксы, как это
<input type="radio" name="answer[1][1]"> Question 1 Answer 1
<input type="radio" name="answer[1][2]"> Question 1 Answer 2
<input type="radio" name="answer[1][3]"> Question 1 Answer 3
<input type="radio" name="answer[1][4]"> Question 1 Answer 4
<input type="radio" name="answer[2][1]"> Question 2 Answer 1
<input type="radio" name="answer[2][2]"> Question 2 Answer 2
<input type="radio" name="answer[2][3]"> Question 2 Answer 3
<input type="radio" name="answer[2][4]"> Question 2 Answer 4
Тогда вы можете проверить их в PHP, как
// For 10 questions
for($i=1;$i<=10;$i++)
{
if(!isset($_POST["answer"][$i]))
echo "You didn't answer Question number $i ";
}