我正在从MySQL数据库中提取数据,该数据库动态地放置一个带有4-5个单选按钮选项的问题作为答案。这些单选按钮均属于同一组$ quest_name。while语句的第一遍将创建属于单选组“ question_1”的4个单选按钮。
它在页面上创建30-40个这些问题,每个问题带有4个单选按钮。我希望用户填写所有答案,并在用户答案仍处于选中状态的情况下将页面发回到自身,然后显示它们是否正确(我仍然必须添加功能)。
我尝试以http://www.w3schools.com/php/php_form_complete.asp为例,但改用动态创建的单选按钮名称。
到目前为止,这是我所拥有的:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<?php
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$quest_num = $row["id"];
$question = $row["question"];
$option_1 = $row["option_1"];
$option_2 = $row["option_2"];
$option_3 = $row["option_3"];
$option_4 = $row["option_4"];
$option_5 = $row["option_5"];
$answer = $row["answer"];
$quest_name = "question_" . $row["id"];
echo "(" . $quest_num . ") " . $question . "<br>";
?>
<label>
<input type="radio" name=<?php echo $quest_name ?>
<?php if (isset(echo $quest_name) && echo $quest_name == echo $option_1) echo "checked"; ?>
value=<?php echo $option_1 ?>><?php echo $option_1 ?>
</label>
<br>
<label>
<input type="radio" name=<?php echo $quest_name ?>
value=<?php echo $option_2 ?>><?php echo $option_2 ?>
</label>
<br>
<label>
<input type="radio" name=<?php echo $quest_name ?>
value=<?php echo $option_3 ?>><?php echo $option_3 ?>
</label>
<br>
<label>
<input type="radio" name=<?php echo $quest_name ?>
value=<?php echo $option_4 ?>><?php echo $option_4 ?>
</label>
<br>
<br>
<?php
}
} else {
echo "0 results";
}
$conn->close();
?>
<input type="submit">
</form>
到目前为止,引起我悲伤的部分是:
<?php if (isset(echo $quest_name) && echo $quest_name == echo $option_1) echo "checked"; ?>
我也尝试过:
<?php if (isset($quest_name) && $quest_name == $option_1) echo "checked"; ?>
和:
<?php echo (isset($quest_name) && $quest_name == $option_1) ? "checked" : ""; ?>
您如何将他们选择的内容发回到同一页面?像在这种情况下,我想说是否设置了“ question_1”,并且“ question_1”等于“ converter”(第一个单选按钮选项),然后在单击提交按钮时对其进行了检查。
我不太擅长于Web开发,但是我正在尝试创建一个网站来帮助我的电气技术同班同学。
谢谢你的帮助。
编辑 :
使用此行代码解决了该问题:
<?php if(isset($_POST[$quest_name]) && $_POST[$quest_name]==$option_1) { echo 'checked="checked"'; } ?>
您需要的是无线电组。在HTML
图层中,为所有名称创建同一个名称,并为每个名称创建不同的值,如下所示:
<p>
<label>
<input type="radio" name="RadioGroup1" value="Value1" id="RadioGroup1_0">
Radio</label>
<br>
<label>
<input type="radio" name="RadioGroup1" value="Value2" id="RadioGroup1_1">
Radio</label>
<br>
</p>
而当您想在php
图层中获取用户输入时,您将像这样进行操作:
<?php
//check if Radio Group 1 is set
if(isset($_POST['RadioGroup1'])) {
// print the value of Radio Group 1 choice
echo $_POST['RadioGroup1'];
}
?>
当您想在HTML
图层中创建一个选定的收音机时,您将像这样:
<input name="RadioGroup1" type="radio" id="RadioGroup1_1" value="radio" checked="checked">
因此,您必须检查用户是否输入了如下所示的无线电的值:
<label>
<input type="radio" name="RadioGroup1" value="value1" id="RadioGroup1_0" <?php if(isset($_POST['RadioGroup1']) && $_POST['RadioGroup1']=='value1') { echo ' checked="checked"'; } ?>>
Radio</label>
<br>
<label>
<input type="radio" name="RadioGroup1" value="value2" id="RadioGroup1_1" <?php if(isset($_POST['RadioGroup1']) && $_POST['RadioGroup1']=='value2') { echo ' checked="checked"'; } ?> >
Radio</label>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句