如果php-mysql中存在逗号分隔的值,请选中复选框


Check checkbox if comma separated values exists in php mysql

首先,很抱歉我的英语不好:)我有一个名为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"';}} ?> />