0

所以我有一个医院收费的mysql表。我的程序目前只获得检查程序的价格。但是现在,我还想在检查时获取过程名称。

事务.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 属性可以有两个值吗?我不能只做另一个不合适的复选框。

编辑:爆炸功能不起作用。它说:警告: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>';

where$row_index在每一行(tr标签)上递增

顺便说一句,explode 将作用于 er 数组的项目,而不是数组本身。尝试:

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

我不确定我是否理解您的问题,但您不能将复选框的名称属性设置为过程名称吗?看起来您正在将名称设置为 er[] 数组,但您以后再也不会引用它。

于 2012-12-15T07:20:47.700 回答