PHP-获取HTML表单提交,将任何选中的复选框放入PHP页面上的无序HTML列表中



正在学习一门课程,我正在努力实现这一目标。基本上,我想要一堆复选框,当选中时,它们会被php页面读取,然后显示在无序的html列表中。例如,披萨订单。选择需要的浇头,然后提交表格。然后返回说明您点了什么的页面。

HTML

<html>
<head>
</head>
<body>
<h2>Pizza Order Form</h2>
<form method="post" action="processform.php">
<h3>Toppings:</h3>
<input type="checkbox" id="Pepperoni" name="Toppings" value="Pepperoni">
<label for="Pepperoni"> Pepperoni</label><br>
<input type="checkbox" id="Sausage" name="Toppings" value="Sausage">
<label for="Sausage"> Sausage</label><br>
<input type="checkbox" id="Bacon" name="Toppings" value="Bacon">
<label for="Bacon"> Bacon</label><br>
</form>
</body>

PHP页面

<?php
$Toppings = $_POST['Toppings'];
if(empty($Toppings)) {
echo "No Toppings Selected";
}   else {
print_r($Toppings);
foreach($Toppings as $Topping) {
echo $Topping;
}
$ToppingList = implode(',', $Toppings);
}
?>
<html>
<head>
</head>
<body>
<h1>Pretend Pizza Purchase:</h1>
<h2> Order Details</h2>
<?php echo '<ul>';
foreach($ToppingList as $Topping)
{
echo '<li>';
echo $Topping;
echo'</li>';
}
echo '</ul>';
?>
</body>
</html>

为了让php将您的复选框元素视为一个数组,您必须像一样在它们的名称中添加大括号

name=Toppings[]

问题

如果输入是一个复选框,那么属性名称的末尾必须有[]。否则,$_POST['Toppings']是最后选择的选项。例如,用户选择Pepperoni和Sausage,则$_POST['Toppings']为Sausage。

函数[]

提交表单时,$_POST['Toppings']将被视为一个数组,您可以操作该数组。

答案

HTML

<html>
<head>
</head>
<body>
<h2>Pizza Order Form</h2>
<form method="post" action="processform.php">
<h3>Toppings:</h3>
<input type="checkbox" id="Pepperoni" name="Toppings[]" value="Pepperoni">
<label for="Pepperoni"> Pepperoni</label><br>
<input type="checkbox" id="Sausage" name="Toppings[]" value="Sausage">
<label for="Sausage"> Sausage</label><br>
<input type="checkbox" id="Bacon" name="Toppings[]" value="Bacon">
<label for="Bacon"> Bacon</label><br>
</form>
</body>

PHP页面

<?php
$Toppings = $_POST['Toppings'];
if(empty($Toppings)) {
echo "No Toppings Selected";
}   else {
print_r($Toppings);
foreach($Toppings as $Topping) {
echo $Topping;
}
$ToppingList = implode(',', $Toppings);
}
?>
<html>
<head>
</head>
<body>
<h1>Pretend Pizza Purchase:</h1>
<h2> Order Details</h2>
<?php echo '<ul>';
foreach($Toppings as $Topping)
{
echo '<li>';
echo $Topping;
echo'</li>';
}
echo '</ul>';
?>
</body>
</html>

最新更新