是的,这是复选框表单问题之一。我试图让我的问题简短易懂。我有一个包含大约 25 个复选框的表单,分为 3 组。每组对每个复选框给出不同的分数。Group1 = 5 点/检查 | Group2 = 8 点/检查 | Group3 = 12 点/检查。我想要做的是计算提交检查的数量,然后将所有内容添加到总分中。简单的?新的复选框可以随时选中,这意味着总分可以增加,为了更容易,复选框不能取消选中,所以总分不能减少。然后总分将保存在数据库表中。这就是我现在所拥有的,并不多,但我需要新的眼光来看待我的问题。这个等式在我的脑海中似乎很容易,但我无法在纸上得到它。
....5points
<label for="first_name">first point</label>
<input type="checkbox" name="five[]" value="1" <?php if(isset($_POST['five'])) echo 'checked="checked"'; ?> />
<label for="first_name">sec point</label>
<input type="checkbox" name="five[]" value="1" <?php if(isset($_POST['five'])) echo 'checked="checked"'; ?> />
<label for="first_name">n point</label>
<input type="checkbox" name="five[]" value="1" <?php if(isset($_POST['five'])) echo 'checked="checked"'; ?> />
................8points
<label for="first_name">first point</label>
<input type="checkbox" name="eight[]" value="1" <?php if(isset($_POST['eight'])) echo 'checked="checked"'; ?> />
<label for="first_name">sec point</label>
<input type="checkbox" name="eight[]" value="1" <?php if(isset($_POST['eight'])) echo 'checked="checked"'; ?> />
....12points and so on
我也将这些框保存为使用Isset = 检查代码进行检查。这是我丑陋的总分加法:
$a =0;
$b =0;
$total;
if(isset($_POST['submitted']))
{
if (isset($_POST['five'])) {
foreach ($_POST['five'] as $five) {
$a + 5;
}
if (isset($_POST['eight'])) {
foreach ($_POST['eight'] as $eight) {
$b + 8;
}
$total=$total+$a+$b;
}
但当然它并不能解决问题,它只是给我一个回声结果,分别为 5555555 和 888888。我也不希望我的总分像现在看起来那样添加两次相同的分数。有人可以帮我弄清楚这个脑筋急转弯吗?