我正在尝试创建一个管理表单,允许用户选择他们的需求并使用多对多关系保存到数据库。我可以使用下面的 while 循环生成表单项并提交这些
while ($rows = $equipresults->fetch()) {
$eqid = $rows['req_id'];
$eqname = $rows['requirement'];
echo "
<label class='checkbox'>
<input type='checkbox' name='requirement[]' value='$eqid'> $eqname
</label><br>
";}
上面的代码产生这样的结果:
当我在提交后返回表单时,即使值已添加到数据库中,复选框也不会被选中。我明白为什么上面没有返回任何内容。
所以我的问题是如何编写一个循环,允许我以数组形式显示选中的复选框,类似于下面的内容?
$equipresult = array (
[0] => Array ( [artistid] => 2 [req_id] => 1 [requirement] => Microphone )
[1] => Array ( [artistid] => [req_id] => 2 [requirement] => Table )
[2] => Array ( [artistid] => 2 [req_id] => 3 [requirement] => Chair )
[3] => Array ( [artistid] => [req_id] => 4 [requirement] => Microphone Stand )
[4] => Array ( [artistid] => [req_id] => 5 [requirement] => Personal Artifacts )
[5] => Array ( [artistid] => [req_id] => 6 [requirement] => Set Dressing )
[6] => Array ( [artistid] => [req_id] => 7 [requirement] => Raised Step )
[7] => Array ( [artistid] => [req_id] => 8 [requirement] => Other ) )
我试图根据上面的数组显示下面的内容
我一直在玩 foreach 循环,但我无法设法检查复选框。我如何循环遍历上面的数组,如果artistid = 2,当foreach循环生成时,在html中将其显示为“已选中”
$req=explode(",",$rows['requirement']);
if (!empty($equipresult)) {
foreach ($equipresult as $row) {
$checked = (in_array($row, $req)) ? 'checked="checked"' : '';
?>
<label class='checkbox'>
<input type="checkbox" name="requirement[]" value="<?php echo $row;?>"
<?php $checked;?>><?php echo implode(", ", $row);?>
</label><br>
<?php
}
}
?>
最终我试图避免对 html 进行硬编码。这里的任何指导将非常感激。我也确信可能有一种非常简单的方法可以做到这一点。
慕沐林林
跃然一笑
相关分类