使用php从复选框中检索数据

时间:2013-08-14 10:47:05

标签: php

我已从复选框动态发送值,当我尝试使用循环动态检索所有值时,它只是继续加载。 我的代码从复选框发送值:

while ($row=mysql_fetch_array($query))
{

   $member_id=$row["member_id"];
   <input type='checkbox' name='check' value='$member_id'>
}

// this is working. but when i try to fetch the data from checkbox from only where the tick is given it doesn't work. this is how i tried to fetch the data


while(isset($_POST['check']))
{
   echo $_POST['check']."<br>";

}

4 个答案:

答案 0 :(得分:2)

这里的诀窍是,如果你有多个具有相同名称的复选框,并且想要获得服务器端的所有选中值,那么你需要在html中复选框字段的名称之后添加[],例如。

<input type='checkbox' name='check[]' value='$member_id'>

如果你这样做,那么$ _POST ['check']将是所有被检查元素的数组。正如其他人所指出的那样,

while(isset($_POST['check']))

表示无限循环。它应该是

if(isset($_POST['check']))
foreach($_POST['check'] as $each_check)
 echo $each_check;

最后,它是an existing question的副本。请再次询问前搜索:)

答案 1 :(得分:0)

 foreach ($_POST['check'] as $selected) {
   $selections[] = $selected;
 }
 print_r($selections);

并将您的html标记更改为:

<input type="checkbox" name="check[]" value=".$member_id.">

答案 2 :(得分:0)

您添加了While循环,条件始终为true。所以循环将变得无限。 将你的循环改为foreach,就像这样

foreach ($_POST['check'] as $value)
{
  echo $value."<br>";
}

并且在您添加echo之前,您的复选框不会显示,就像这样

while ($row=mysql_fetch_array($query))
{

  $member_id=$row["member_id"];
  echo "<input type='checkbox' name='check' value='$member_id'>";
}

答案 3 :(得分:0)

如果你想获得所有复选框

错误会导致无限循环

while(isset($_POST['check']))
{
    echo $_POST['check']."<br>";
}

许多正确的选择之一:

foreach ($_POST['check'] as $val) {
     echo $val.'<br>';
}