【发布时间】:2013-12-02 01:29:33
【问题描述】:
我有一个外部 for 循环,它根据 SQL 表的字段创建一个表单。它工作正常,将正确数量的输入元素与相关的名称、id 等放置在一起......顺便说一下,这些输入元素用于选择科目,如数学、科学等......
为了检查是否应该选中这些框,我查询了另一个名为 subject_teachers 的 SQL 表,其中每个教师都有一个唯一的 id,报告与不同科目的关系。这是一个多对多表,因为任何给定的老师都可以教授许多不同的科目,任何科目并由许多老师教授。在编写用于检查复选框的内部 for 循环时,我检查了正确数量的框,但现在我打印了两倍数量的科目,即打印数学数学、科学科学、英语而不是数学、科学、英语.
这是我写的:
for ($i = 0; $i < $subjects_num;$i++)
{
for ($j = 0; $j < $subjects_taught;$j++)
{
if ($all_subjects[$i]['subject_id'] == $this_user[$j]['subject_id'])
{
$checked = "checked";
}
else
{
$checked = "";
}
echo "<label class='checkbox-inline'><input type='checkbox' name='subject' id=".$all_subjects[$i]['subject_id']." value=".$all_subjects[$i]['subject_id']." . $checked .>".$all_subjects[$i]['subject_en_name']."</label>";
}
}
如果我将 echo 语句放在内部第一个循环之外,我会得到正确数量的复选框,但会选中不正确(更少)的框。对于我使用的示例,应选中前两个框。
谢谢
【问题讨论】: