如何使用explode编辑复选框

时间:2014-12-14 12:57:50

标签: php html mysql

我希望stackoverflow成员可以帮助我解决我的问题。我是php中的implode函数的新手,所以我对它的整个函数感到很困惑。 我有多个技能的复选框,如java,php,css,asp,vb,mysql等。 我尝试使用implode将它们保存在数据库的单个列中。

$skills = implode(',',$skills);
<input type="checkbox" name="skills[0]" value="java">java
<input type="checkbox" name="skills[1]" value="php">php
<input type="checkbox" name="skills[2]" value="css">css
<input type="checkbox" name="skills[3]" value="asp">asp

更新:

<input type="checkbox" name="skills[0]" value='<?php $skills=explode(',',$skills);?>
<?php if     ($skills[0] = "java"){?>  checked="checked" <?php }?>'>

<input type="checkbox" name="skills[1]" value='<?php $skills=explode(',',$skills);?>
<?php if     ($skills[1] = "php"){?>  checked="checked" <?php }?>'>

<input type="checkbox" name="skills[2]" value='<?php $skills=explode(',',$skills);?>
<?php if     ($skills[2] = "css"){?>  checked="checked" <?php }?>'>

<input type="checkbox" name="skills[3]" value='<?php $skills=explode(',',$skills);?>
<?php if     ($skills[3] = "asp"){?>  checked="checked" <?php }?>'>

我的更新代码不起作用,因为如果我更新复选框,则会出现未选中的复选框,但在我尝试编辑时会检查它。 然后根据评论,未选中的复选框将不会保存在数据库中,这是真的。我试着在这里阅读一些相关的问题,但我认为我的不同,如果不是请提供。

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:4)

试试这段代码:

<?php
        $skills=explode(',',$skills); 
        if(in_array('java', $skills))
            echo '<input type="checkbox" name="skills[0]" value="java" checked>java';
        else
            echo '<input type="checkbox" name="skills[0]" value="java">java';
        if(in_array('php', $skills))
            echo '<input type="checkbox" name="skills[1]" value="php" checked>php';
        else
            echo '<input type="checkbox" name="skills[1]" value="php">php';

        if(in_array('css', $skills))
            echo '<input type="checkbox" name="skills[2]" value="css" checked>css';
        else
            echo '<input type="checkbox" name="skills[2]" value="css">css';

        if(in_array('asp', $skills))
            echo '<input type="checkbox" name="skills[3]" value="asp" checked>asp';
        else
            echo '<input type="checkbox" name="skills[3]" value="asp">asp';
    ?>

答案 1 :(得分:1)

下面的答案是正确的,但我检查了一个附加条件

if (empty($skills))
        {
            echo '<input type="checkbox" name="skills[0]" value="java">java';
            echo '<input type="checkbox" name="skills[1]" value="php">php';
            echo '<input type="checkbox" name="skills[2]" value="css">css';
            echo '<input type="checkbox" name="skills[3]" value="asp">asp';         
        }
else
        {
             $skills=explode(',',$skills); 
            if(in_array('java', $skills))
                echo '<input type="checkbox" name="skills[0]" value="java" checked>java';
            else
                echo '<input type="checkbox" name="skills[0]" value="java">java';
            if(in_array('php', $skills))
                echo '<input type="checkbox" name="skills[1]" value="php" checked>php';
            else
                echo '<input type="checkbox" name="skills[1]" value="php">php';

            if(in_array('css', $skills))
                echo '<input type="checkbox" name="skills[2]" value="css" checked>css';
            else
                echo '<input type="checkbox" name="skills[2]" value="css">css';

            if(in_array('asp', $skills))
                echo '<input type="checkbox" name="skills[3]" value="asp" checked>asp';
            else
                echo '<input type="checkbox" name="skills[3]" value="asp">asp';

        }

答案 2 :(得分:1)

或者您可以使用“ echo”,不需要长脚本

if(in_array('java', $skills))
        echo '<input type="checkbox" name="skills[0]" value="java" {echo 'checked';}>java';