Php 还记得从数据库填充的用户复选框吗
我有一个表单,其中包含从db填充的几个复选框 代码:Php 还记得从数据库填充的用户复选框吗,php,mysql,Php,Mysql,我有一个表单,其中包含从db填充的几个复选框 代码: <form method=post> <?php $n['id']='someid'; $n['eName'] = 'test'; echo '<div> <label for="'.$n['eName'].'">'.$n['eName'].'</label> <input type="checkbox" name="skills['.$n['eName'].']
<form method=post>
<?php
$n['id']='someid';
$n['eName'] = 'test';
echo '<div>
<label for="'.$n['eName'].'">'.$n['eName'].'</label>
<input type="checkbox" name="skills['.$n['eName'].']" id="'.$n['eName'].'" value="'.$n['id'].'" '.(isset($_POST['skills'][$n['eName']]) ? 'checked="checked"' : '') .' />
</div>';
?>
<input type=submit >
</form>
//从数据库填充复选框
回声'
“.$n['eName']”
';
问题是,当用户选中其中一些复选框并提交表单时,表单会出现错误,表单无法记住他的选择,他必须重新选择它们
我能做些什么来讨论这个问题
提前感谢这是不正确的:
isset($_POST[$n['eName']]
您应该查看$\u POST['skills']数组
根据$n['eName']的实现,以下代码可能会起作用:
echo '<div>
<label for="'.$n['eName'].'">'.$n['eName'].'</label>
<input type="checkbox" name="skills['.$n['eName'].']" id="'.$n['eName'].'" value="'.$n['id'].'" '.(isset($_POST['skills'][$n['eName']]) ? 'checked="checked"' : '') .' />
</div>';
echo'
“.$n['eName']”
';
注意:任何n['eName']的报价都很可能会破坏您的代码,您应该针对这些情况采取措施
编辑:
<form method=post>
<?php
$n['id']='someid';
$n['eName'] = 'test';
echo '<div>
<label for="'.$n['eName'].'">'.$n['eName'].'</label>
<input type="checkbox" name="skills['.$n['eName'].']" id="'.$n['eName'].'" value="'.$n['id'].'" '.(isset($_POST['skills'][$n['eName']]) ? 'checked="checked"' : '') .' />
</div>';
?>
<input type=submit >
</form>
我为您制作了一个简单的页面来说明它实际上是有效的。我将在上面添加代码。我的错误,很抱歉,我没有在我的测试中更新name=“skills['.$n['eName'.].”“
。。对不起。。。它正在发挥作用,并被接受为一个答案