1
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

4 回答 4

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);

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

于 2012-12-05T14:12:30.250 回答
1

尝试这个:-

echo "<td><input type='checkbox' name='er[]' value='$price'></td>";
于 2012-12-05T14:05:12.080 回答
0

如果要传递数组中的多个元素,请在名称后面加上方括号,因此它将是:

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

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

于 2012-12-05T14:06:41.743 回答
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);
}
于 2012-12-05T14:16:02.467 回答