如何在一个字符串中保存多个复选框

时间:2012-12-19 23:03:54

标签: php checkbox

我正在寻找一些帮助,将多个复选框中的值放在一个字符串中,分隔为','

这是我的代码:

if (isset($_POST['submitKon'])) {   
$checkBox = $_POST[$holdID[$i]];

<?php
    $i=1;
    $virksomhedsID = $_SESSION['virkID'];
    $sql = "SELECT * FROM  `hold` INNER JOIN  `virksomheder` ON hold.virkID = virksomheder.virkID
    WHERE hold.virkID = '$virksomhedsID' ORDER BY  `holdNavn` ASC";

    $result = mysql_query($sql);
    while($row = mysql_fetch_assoc($result))
    { 
    echo '<label for="check' . $row['holdNavn'] . '">' . $row['holdNavn'] . '</label>&nbsp;';
    echo '<input type="checkbox" checked="checked" id="' . $row['holdID'] . '" name="' . $row['holdID'] . '">&nbsp;&nbsp;';                         
    $i++;       
?>

任何人都可以帮忙吗? 谢谢

2 个答案:

答案 0 :(得分:2)

您的复选框名称应全部设置为例如:

 <input type="checkbox" name="check[]" value="{$row['holdID']}" />

然后复选框的值应该在$_POST['check']中,所以我认为您应该尝试(在您收到$_POST的页面上)

implode(',',$_POST['check']);
 //or something like
$checkstring="";
foreach($_POST['check'] as $checkboxes) {
  $checkstring.= $checkboxes .",";
}
echo rtrim($checkstring);

答案 1 :(得分:0)

夫妻俩。您的$i变量从未被使用过,这是故意的吗?

你也错过了在while语句结尾处的结束}

在你的标签上写了for=你的意思是id=吗?

这应该遍历结果并为每个结果打印标签和复选框。我在最后两个&nbsp;

之前添加了“,”
<!-- language: lang-php -->
while($row = mysql_fetch_assoc($result))
{ 
    echo "<label id='check".$row['holdNavn']."'>".$row['holdNavn']."</label>&nbsp;
          <input type='checkbox' checked='checked' id='".$row['holdID']."' name='".$row['holdID']."'>,&nbsp;&nbsp;";                                
}