為什麼這篇PHP 勾 選鄉民發文收入到精華區:因為在PHP 勾 選這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者tk102 (TK)看板PHP標題[請益] 關於checkbox勾選後 數值加總問題時間Tue ...
今天嘗試寫一個利用checkbox勾選後,
將有勾選的checkbox(產品)所給定的值相加,
應用到點餐的計價。
不過寫完後發現點小問題...
請問checkbox沒勾選是代表數值為0,還是說就是一個空白?
如果是後者的話,是不是就不能用 $sum把有勾沒勾的同時加總?
請問如果是後者的話,
應該要用甚麼樣的指令告訴程式沒勾選的數值是0,
而有勾選的就按照設定的值顯示?
(請問這邊是應該要用if跟elseif嗎?)
以下是小弟的程式碼:
1.勾選表單頁(hw1-in.php)
<html>
<!-hw2-in.html-->
<form action= "hw2-out.php" method="post">
<p>主廚沙拉($100):<input type="checkbox" name="var_1-1" value="100"</p>
<p>凱薩沙拉($100):<input type="checkbox" name="var_1-2" value="100"</p>
<p>今日濃湯($100):<input type="checkbox" name="var_2-1" value="100"</p>
<p>牛尾清湯($100):<input type="checkbox" name="var_2-1" value="100"</p>
<p>肋眼牛排($400):<input type="checkbox" name="var_3-1" value="400"</p>
<p>梅花豬排($300):<input type="checkbox" name="var_3-2" value="300"</p>
<p>菲力龍鱈($999):<input type="checkbox" name="var_3-3" value="999"</p>
<p>巧克力聖代($100):<input type="checkbox" name="var_4-1" value="100"</p>
<p>輕乳酪蛋糕($100):<input type="checkbox" name="var_4-2" value="100"</p>
<p>結算總額:<input type="submit" name="var_sub" value="總計"</p>
<form target="_blank"></form>
</form>
</html>
2.按下submit後(總計)跳出另一頁面顯示加總所有數值的情形(hw2-out.php)
<html>
<!-hw2-out.html-->
<title>計算總價結果</title>
<body>
<?
echo ("主廚沙拉:".$var_1-1."<br>");
echo ("凱薩沙拉:".$var_1-2."<br>");
echo ("今日濃湯:".$var_2-1."<br>");
echo ("牛尾清湯:".$var_2-2."<br>");
echo ("肋眼牛排:".$var_3-1."<br>");
echo ("梅花豬排:".$var_3-2."<br>");
echo ("菲力龍鱈:".$var_3-3."<br>");
echo ("巧克力聖代:".$var_4-1."<br>");
echo ("輕乳酪蛋糕:".$var_4-2."<br>");
//以上應改成下述,
echo ("主廚沙拉:".$_POST['var_1-1']."<br>");
echo ("凱薩沙拉:".$_POST['var_1-2']."<br>");
echo ("今日濃湯:".$_POST['var_2-1']."<br>");
echo ("牛尾清湯:".$_POST['var_2-2']."<br>");
echo ("肋眼牛排:".$_POST['var_3-1']."<br>");
echo ("梅花豬排:".$_POST['var_3-2']."<br>");
echo ("菲力龍鱈:".$_POST['var_3-3']."<br>");
echo ("巧克力聖代:".$_POST['var_4-1']."<br>");
echo ("輕乳酪蛋糕:".$_POST['var_4-2']."<br>");
$sum = $var_1-1 + $var_1-2 + $var_2-1 + $var_2-2 + $var_3-1 +
$var_3-2 + $var_3-3 + $var_4-1 + $var_4-2;
/*以上應該改成下述:*/
$sum = $_POST['var_1-1'] + $_POST['var_1-2'] + $_POST['var_2-1'] +
$_POST['var_2-2'] + $_POST['var_3-1'] + $_POST['var_3-2'] + $_POST['var_3-3']
+ $_POST['var_4-1'] + $_POST['var_4-2'];
echo ("總計為:".$sum."<br>");
?>
</body>
</html>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.123.174
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in
C:\AppServ\www\hw2-out.php on line 8
所以有點懷疑是不是我漏了甚麼還是有寫錯...
(debug真的不容易,請問有書可以教人怎麼debug嗎?~XD)
的確跟上一個問題犯一樣毛病XD~
改了之後就可以正常執行了~
然後$sum那邊也必須要改成 $_POST['變數']相加,
不然照先前的打法會出現怎麼加都是 -15的狀況
[這邊得思考一下為甚麼是-15...]
看起來應該是 $var_X-Y的 -Y那邊全都相加,就變成-15了,
所以應該在 $var_X-Y外圍加上括號,告訴程式把刮號內的看做是一個變數名稱
※ 編輯: tk102 來自: 218.166.123.174 (07/07 00:57)
※ 編輯: tk102 來自: 218.166.120.119 (07/07 01:11)