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テーブルからの料金のリストがあり、各項目にチェックボックスがあるため、合計が計算されます。上記のコードは機能し、チェックされたアイテムの価格を出力します。問題は、それが 1 つの項目だけであることです。複数の項目にチェックが入っている場合は、1 つだけ出力されます。

4

4 に答える 4

1

これを試して:-

echo "<td><input type='checkbox' name='er[]' value='$price'></td>";
于 2012-12-05T14:05:12.080 に答える
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 に答える
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 に答える
0

配列内の多数の要素を渡したい場合は、名前に角括弧を追加すると、次のようになります。

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

$_POST['er'] の結果は、すべてのチェックボックス値の配列になります。

于 2012-12-05T14:06:41.743 に答える