[爆卦]html checkbox勾選是什麼?優點缺點精華區懶人包

為什麼這篇html checkbox勾選鄉民發文收入到精華區:因為在html checkbox勾選這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者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
iloveelva:你的程式是可以執行的 沒有問題!! 跑出來正常 07/06 23:45
可是我測試的結果是勾完點submit後,出現以下錯誤訊息:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in
C:\AppServ\www\hw2-out.php on line 8
所以有點懷疑是不是我漏了甚麼還是有寫錯...
(debug真的不容易,請問有書可以教人怎麼debug嗎?~XD)

iloveelva:檢察一下哪裡沒有加雙引號或者是連接符號 07/07 00:07
謝謝iloveelva~的確有雙引號未加的問題,已經修正了^^ 感謝

cokellen:echo "主廚沙拉".$_POST['var_1-1']."<br>"; 07/07 00:33
cokellen:發現跟你前一個問題是一樣的= = 07/07 00:35
cokellen:可以研究一下 $_GET[] 和 $_POST[]的用法 07/07 00:36
謝謝cokellen,我後來也查覺到是未將 $變數修改成 $_POST['變數'] 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)
cokellen:^^ 學習debug,最好的老師就是Google~ 07/07 01:11
iloveelva:其實你那樣寫也可以~只不過要去PHP.ini裡面修改參數 07/07 01:12
tkdmaf:學習debug,最好的方法是先安裝可以自動debug的工具。 07/07 09:09

你可能也想看看

搜尋相關網站