我正在做一个项目。我想从数据库中预填充数据。
HTML
<div class="question">
<input type="radio" name="q1" value="A" <?php echo $checkedA ?>>
<input type="radio" name="q1" value="B" <?php echo $checkedB ?>>
<input type="radio" name="q1" value="C" <?php echo $checkedC ?>>
</div>
<div class="question">
<input type="radio" name="q2" value="A" <?php echo $checkedA ?>>
<input type="radio" name="q2" value="B" <?php echo $checkedB ?>>
<input type="radio" name="q2" value="C" <?php echo $checkedC ?>>
</div>
<div class="question">
<input type="radio" name="q3" value="A" <?php echo $checkedA ?>>
<input type="radio" name="q3" value="B" <?php echo $checkedB ?>>
<input type="radio" name="q3" value="C" <?php echo $checkedC ?>>
</div>
<!-- etc till let's say 30 question -->
PHP
$query="SELECT * FROM `quiz` WHERE email='$email'";
$result=mysqli_query($link,$query);
$data=mysqli_fetch_assoc($result);
for($i=1; $i<=30; $i++){
switch($data[${"answer".$i}]{
case "A" : $checkedA="checked"; break;
case "B" : $checkedB="checked"; break;
case "C" : $checkedC="checked"; break;
}
}
然后,如何检查与$ data ['answer1']相对应的q1是否填充了数据库中的数据等?
答案 0 :(得分:0)
示例中恰好有3个要检查的变量($checkedA
,$checkedB
,$checkedC
)。为了每个问题有3个变量,它们需要一个“支票”集合。如果您有 n 个问题,则您的收藏需要 n 个成员。这些成员中的每个成员都需要3个成员,代表是否检查了答案,每个选项一个。
例如:
如果q1的答案是A,则
$checked['q1'] = ['A'=> "checked",'B'=>"",'C'=>""]
。
在php中,如上所述,为每个问题初始化一个$checked
成员。然后更改switch
以更新相应的成员。 [以这种方式初始化的原因是:1)一切都需要html中的值,以及2)checked
是布尔型属性]
html将分别回显$checked[q#]['A']
$checked[q#]['B']
和$checked[q#]['C']
。
答案 1 :(得分:0)
使用您提供的代码,可以从数据库中获取数据,然后在html中显示结果,而不会使事情复杂化。要预填充您的单选按钮,您需要具备以下条件:
PHP
$query="SELECT * FROM `quiz` WHERE email='$email'";
$result=mysqli_query($link,$query);
$data=mysqli_fetch_assoc($result);
HTML
<div class="question">
<input type="radio" name="q1" value="A" <?php echo ($data['q1'] == 'A')? 'checked' : ''; ?>>
<input type="radio" name="q1" value="B" <?php echo ($data['q1'] == 'B')? 'checked' : ''; ?>>>
<input type="radio" name="q1" value="C" <?php echo ($data['q1'] == 'C')? 'checked' : ''; ?>>
</div>
<div class="question">
<input type="radio" name="q2" value="A" <?php echo ($data['q2'] == 'A')? 'checked' : ''; ?>>
<input type="radio" name="q2" value="B" <?php echo ($data['q2'] == 'B')? 'checked' : ''; ?>>
<input type="radio" name="q2" value="C" <?php echo ($data['q2'] == 'C')? 'checked' : ''; ?>>
</div>
<div class="question">
<input type="radio" name="q3" value="A" <?php echo ($data['q3'] == 'A')? 'checked' : ''; ?>>
<input type="radio" name="q3" value="B" <?php echo ($data['q3'] == 'B')? 'checked' : ''; ?>>
<input type="radio" name="q3" value="C" <?php echo ($data['q3'] == 'C')? 'checked' : ''; ?>>
</div>
使用这段代码,它根据来自数据库的值设置 checked 并将其显示在屏幕上。