0

首先抱歉我的英语不好:) 我有一个名为 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
4

3 回答 3

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你的盒子

修剪解决方案在这里找到

于 2013-07-05T12:47:00.760 回答
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

** 在这样的函数之前可能需要一个回显:

<?php echo checkboxChecked('Spanish'); ?>

如果这不起作用,试试这个(在爆炸之后)并复制/粘贴结果到评论中

print_f($langs);
于 2013-07-05T12:27:48.490 回答
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"';}} ?> />
于 2015-08-28T21:19:50.290 回答