我希望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 }?>'>
我的更新代码不起作用,因为如果我更新复选框,则会出现未选中的复选框,但在我尝试编辑时会检查它。 然后根据评论,未选中的复选框将不会保存在数据库中,这是真的。我试着在这里阅读一些相关的问题,但我认为我的不同,如果不是请提供。
任何帮助都会非常感激。
答案 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';