首先抱歉我的英语不好:)我有一个名为members的表,并且连续有一些逗号分隔的语言值。当用户编辑他/她的个人资料时,我想要检查语言复选框,如果表中存在值。我试过这个,但只检查了最后一个复选框。
$langs = explode(", ", $p['lang']);
<input type="checkbox" name="lang[]" value="English" <? if (in_array('English', $langs)) {echo 'checked="checked"';} ?> />English
<input type="checkbox" name="lang[]" value="Spanish" <? if (in_array('Spanish', $langs)) {echo 'checked="checked"';} ?> />Spanish
答案 0 :(得分:2)
尝试
$langs = array_map('trim', explode(",", $p['lang']));
<input type="checkbox" name="lang[]" value="Spanish" <?=(in_array('Spanish', $langs)?'checked="checked"':NULL)?> />Spanish
编辑说明:第一行将删除所有元素的前导和尾随空格,第二行必须为所有语言重复
true/false ? statement for true : statement for false
用于check
您的方框
修剪解决方案here
答案 1 :(得分:1)
试试这个
$p['lang'] = 'English,Spanish';
$langs = explode(",", $p['lang']);
function checkboxChecked($input)
{
global $langs;
if (in_array($input, $langs))
{
return 'checked';
}
}
<input type="checkbox" name="lang[]" value="English" <?php checkboxChecked('English'); ?> />English
<input type="checkbox" name="lang[]" value="Spanish" <?php checkboxChecked('Spanish'); ?> />Spanish
**在这个函数之前可能需要一个echo:
<?php echo checkboxChecked('Spanish'); ?>
如果这不起作用,请尝试此操作(爆炸后)并将结果复制/粘贴到注释中
print_f($langs);
答案 2 :(得分:0)
你必须试试这个, 这有点长,但效果很好
Present<input type="checkbox" name="" value="" <?php $result=mysql_query("select date from student where no='$_POST[rollno]'"); while($row=mysql_fetch_array($result)){ if ($row['date']=='2015-08-10') {echo 'checked="checked"';}} ?> />