1

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

这是我的代码:

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++;       
?>

有人能帮忙吗?谢谢

4

2 回答 2

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);
于 2012-12-19T23:20:12.640 回答
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;";                                
}
于 2012-12-19T23:20:20.803 回答