首先,很抱歉我的英语不好:)我有一个名为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
尝试
$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
您的箱子
在此处找到修剪解决方案
试试这个
$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
**它可能需要在以下功能之前进行回声:
<?php echo checkboxChecked('Spanish'); ?>
如果这不起作用,试试这个(在爆炸后),并将结果复制/粘贴到评论中
print_f($langs);
您必须尝试此操作,这有点长,但效果很好
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"';}} ?> />