我已经设置了一个小脚本来处理我有三个复选框的页面。
复选框的HTML如下所示:
<input type="checkbox" value="Ex1" name="Check[]" />Ex1
<input type="checkbox" value="Ex2" name="Check[]" />Ex2
<input type="checkbox" value="Ex3" name="Check[]" />Ex3
这些的PHP脚本:
if($_POST['Check'] == true){
foreach($_POST['Check'] as $value){
$check_msg .= "$value";
}
}
现在,我想要做的是在我的数据库中插入“Ex1,Ex2”,如果选中“Ex1”和“Ex2”复选框。但问题是,如果我在“$ value”前加上“,”,它会将“,Ex1,Ex2”插入数据库。但正如我所说,我想在开头插入它而不用逗号和空格......我怎么能这样做?如果它是foreach循环或其他方法并不重要,因为我真的不知道检查哪些复选框被检查的任何其他方法。
我尝试了几种组合,但无法真正得到我想要的结果......
感谢。
答案 0 :(得分:4)
您可以foreach
使用implode
进行此操作。如果未选中该复选框,则无论如何都不会在$_POST['Check']
值中显示该值。
示例:强>
$csv = implode(', ', $_POST['Check']);
确保在将结果字符串插入数据库之前对其进行清理,以防止SQL注入。
答案 1 :(得分:0)
我总是使用以下代码执行该类型的操作;
foreach ( $_POST['Check'] as $key => $value ) { $check_msg .= ", {$value}"; } $check_msg = substr($check_msg,2);
最后一行只是从你正在构建的字符串中删除“,”。每次要添加下一个项目时,比检查$ check_msg的现有值更简单,更容易[恕我直言]。