无法获得PHP_SELF发布复选框

时间:2013-01-20 14:28:29

标签: php checkbox self

我试图让我的复选框在页面底部输出“Korting is ...%”,具体取决于选中的复选框,例如检查第2和第3个框,它将输出“Korting是15%”,但我似乎无法让它工作。有人可以帮帮我吗 提前谢谢你

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>XXL Computer winkel</title>
</head>
<body>
<h3>php lab 04</h3>

<table border=0 cellpadding=0 cellspacing=0 width=100%>
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<tr> 
<td> 
Korting:<br />
<input type="checkbox" name="korting" value="15" /> Student 15% <br/>
<input type="checkbox" name="korting" value= "10"  /> Senior 10% <br/>
<input type="checkbox" name="korting" value= "5" /> klant 5% <br/> 
<hr/>
<img src="images/Lab4/1.jpg" width="200px" height="200px" alt=" "/>
<td/>
</tr>     
<tr> 
<td>
Toshiba Satellite A100-510 basisprijs 999.99
</td>
</tr>

<tr>     
<td><!-- Shopping cart begin-->
<input type="hidden" name="toshibaproduct" value="001"/>
<input type="hidden" name="toshibamerk" value="Toshiba"/>
<input type="hidden" name="toshibamodel" value="Sattelite A100-510"/>
Aantaal: <input type="text" size=2 maxlenght=3 name="toshibaaantal" value="0"/>
<input type="hidden" name="toshibaprijs" value="999.99"/>

<input type="image" src="images/Lab4/2.jpg" border=0 value="bestellen"/>
<hr/>
</td><!--Shopping Cart END -->
</tr>
</form>
</table> 
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您需要使用以[]结尾的名称,例如name="korting[]"。然后你可以使用$_POST['korting']这个数组包含已选中复选框的值。

请注意,如果未选中复选框,则根本不会设置$_POST['korting']

答案 1 :(得分:0)

  • 如果您想要选择一个选项,请使用radio代替checkbox
  • 不要使用PHP_SELF,它是security hole。相反:<form action="">
  • 使用$_POST['korting']
  • 访问该值

要总结所有值,请按以下方式制作表单:

<input type="checkbox" name="korting[]" value="15" /> Student 15% <br/>
<input type="checkbox" name="korting[]" value= "10"  /> Senior 10% <br/>
<input type="checkbox" name="korting[]" value= "5" /> klant 5% <br/> 

和那样的处理:

<?php
$korting = 0;
if (isset($_POST['korting']) && is_array($_POST['korting'])) {
  $korting = array_sum($_POST['korting']);
}
echo 'Korting is ' . $korting . '%';
?>