从循环中获取多个复选框值

时间:2012-12-05 14:01:32

标签: php mysql

while($row = mysql_fetch_array($result)){       
echo '<tr>
        <td>'.$row[0].'</td>
        <td>'.$row[1].'</td>
        <td>'.$row[2].'</td>';
        $price=$row['price'];
        echo "<td><input type='checkbox' name='er' value='$price'></td>";
echo "</tr>";

PHP文件

 <?php
       $ercharge=$_POST['er'];
       echo $ercharge;
?>

我有一个来自mysql表的收费清单,它有一个每个项目的复选框,所以它会计算总和。上面的代码工作,它输出检查项目的价格。问题是,它只是一个项目。选中多个项目时,只输出一个。

4 个答案:

答案 0 :(得分:1)

试试这个: -

echo "<td><input type='checkbox' name='er[]' value='$price'></td>";

答案 1 :(得分:1)

试试这可能会对你有所帮助

echo "<td><input type='checkbox' name='er[]' value='$price'></td>";
echo "</tr>";

$recharge=$_POST['er'];

foreach($recharge as $val)
{
     echo $val;
}

您可以使用foreach

执行
$arra_val=array_sum($recharge);

你只需要将值放入某个变量并回显它。

答案 2 :(得分:0)

如果要在数组中传递多个元素,请使用方括号添加名称,因此它将是:

echo "<td><input type='checkbox' name='er[]' value='$price'></td>";

$ _POST ['er']的结果将是所有复选框值的数组。

答案 3 :(得分:0)

输入框名称应该通过添加[]后缀来反映它是一个数组:

echo '<td><input type="checkbox" name="er[]" value=" . htmlspecialchars($row['price']) . "></td>';

然后,在确保输入验证为正确值后处理总和:

if ($ers = filter_input(INPUT_POST, 'er', FILTER_VALIDATE_FLOAT, FILTER_FORCE_ARRAY)) {
    $ercharge = array_sum($ers);
}