【发布时间】:2013-03-27 06:02:10
【问题描述】:
我在 php 中有一个显示复选框的表单。这些复选框与从 mysql 填充的数值相关联。我要做的是添加每个复选框的值,但前提是选中该框。
我遇到的问题是无论我选中了哪些框,都会返回第一个复选框的值。例如,如果总共有 5 个复选框并且我选择了底部的 2 个,则返回的总和是顶部的 2 个框而不是底部的框。似乎我的 php 代码知道正在检查框,但不知道正在检查哪些框。
这是我的表单代码
echo "<input type=\"hidden\" name=\"ID[]\" value=\"".$row['ID']."\" />";
echo "<tr><td> <input type=\"checkbox\" name=\"checked[]\" value=\"Y\"></td>";
echo "<input type=\"hidden\" name=\"amount[]\" value=\"".$row['amount']."\" />";
这是我的帖子
if('POST' == $_SERVER['REQUEST_METHOD']) {
$amt = 0;
$totamt = 0;
foreach($_POST['ID'] as $i => $id)
{
$id = mysql_real_escape_string($id);
$checked = mysql_real_escape_string($_POST['checked'][$i]);
$amt = mysql_real_escape_string($_POST['amount'][$i]);
if ($checked == "Y") {
$totamt = $totamt + $amt;
$amt = 0;
}
}
echo $totamt;
}
感谢您的帮助。
【问题讨论】:
-
您可能需要 JavaScript 的 onclick 或 onchange 事件来更改输入元素的属性。
-
要检查的几件事:每行的金额字段是否不同(检查 HTML 输出)。检查 print_r($_POST) 的输出。你在那里看到了什么。也许发生了一些你没有看到的事情。