所以我有一张医院收费的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中给出的数组
答案 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 []数组,但您以后再也不会引用它。