数组复选框中的两个值

时间:2012-12-15 07:01:55

标签: php mysql

所以我有一张医院收费的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>';

computation.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中给出的数组

2 个答案:

答案 0 :(得分: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 ) );
}

答案 1 :(得分:1)

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