0

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

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

4 回答 4

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;

最后,它是现有问题的副本 。请在再次询问之前搜索:)

于 2013-08-14T11:11:36.263 回答
0
 foreach ($_POST['check'] as $selected) {
   $selections[] = $selected;
 }
 print_r($selections);

并将您的 html 标签更改为:

<input type="checkbox" name="check[]" value=".$member_id.">
于 2013-08-14T10:52:12.397 回答
0

您添加了 While 循环,条件始终为真。所以循环将变得无限。改变你的循环到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'>";
}
于 2013-08-14T10:53:14.933 回答
0

如果你想得到所有的复选框

错误会导致无限循环

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

许多正确的选择之一:

foreach ($_POST['check'] as $val) {
     echo $val.'<br>';
}
于 2013-08-14T10:53:16.957 回答