0

だから私は病院の料金のためのmysqlテーブルを持っています。私のプログラムは現在、チェックされた手順の価格のみを取得しています。しかし、今は、チェックされたときにプロシージャ名も取得したいと思います。

transaction.php

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

計算.php

  <?php
      if(isset($_POST['er']))
      {
        $ercharge=$_POST['er'];
        $totalofer = array_sum($ercharge);  
      }
      if(isset($_POST['ultrasound']))
      {
        $x=$_POST['ultrasound'];
        $totalofultrasound =  array_sum($x);
      }
      if(isset($_POST['confinement']))
      {
        $y=$_POST['confinement'];
        $totalofconfinement =  array_sum($y);
      }
      $total = $totalofer + $totalofultrasound + $totalofconfinement;
      $p = explode("|", $ercharge);
      echo $p;
      echo  $total;
?>

価格の行を取得するだけです。value属性に2つの値を設定できますか?不適切な別のチェックボックスの原因を作成することはできません。

編集:分解機能は機能しません。警告:explode()は、パラメーター2が文字列であり、配列が18行目のC:\ xampp \ htdocs\computation.phpで指定されていることを想定しています。

4

2 に答える 2

2

HTML でパラメーターを分割する必要があります。

    echo '<td><input type="checkbox" name="checked[$row_index][]" value="1">';
    echo '<input type="hidden" name="prices[$row_index][]" value="$price">';
    echo '<input type="hidden" name="procedures[$row_index][]" value="$procedure"></td>';

$row_index行ごとにインクリメントされます (タグtr)

ちなみに、explode は配列自体ではなく、er 配列のアイテムに対して機能します。試す:

foreach ($er as $item) {
  var_dump( explode( "|", $item ) );
}
于 2012-12-15T07:11:47.443 に答える
1

あなたの質問を理解できるかどうかわかりませんが、チェックボックスの name 属性をプロシージャの名前に設定できませんでしたか? 名前を er[] 配列に設定しているように見えますが、後でそれを参照することはありません。

于 2012-12-15T07:20:47.700 に答える