我已从复选框动态发送值,当我尝试使用循环动态检索所有值时,它只是继续加载。 我的代码从复选框发送值:
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>";
}
答案 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>';
}