正如我在上面的评论中所写的那样,主要问题是,如果显示了墨西哥表单,则提交表单时不再有$_POST['Mexican']。
以下解决方案将开关替换为“if else”,并将“if isset mexican”中的“if-isset-mex_desser”移动为独立的“if-isset-mex.desser”。
这很难解释。请查看代码并尝试了解每个表单帖子上发生的情况。
如果你想在最后一次提交后显示第三张表格,那么你必须稍微修改一下。
希望有帮助。
<?php
class Dish
{
private $Price;
private $Name;
public function setData($Price, $Name)
{
$this->Price = $Price;
$this->Name = $Name;
}
function getPrice()
{
return $this->Price;
}
function getName()
{
return $this->Name;
}
}
// It could be much faster by using database...
$Polish_Dinner = new Dish;
$Polish_Dinner->setData("3$", "Kapusniak");
$Polish_Desser = new Dish;
$Polish_Desser->setData("3$", "Kapusniak z cukrem");
$Mexican_Dinner = new Dish;
$Mexican_Dinner->setData("4$", "Fasola");
$Mexican_Desser = new Dish;
$Mexican_Desser->setData("4$", "Fasola z cukrem");
$Italy_Dinner = new Dish;
$Italy_Dinner->setData("5$", "Pizza");
$Italy_Desser = new Dish;
$Italy_Desser->setData("5$", "Pizza z cukrem");
?>
<div style="background-color: gray;">
<?php
$zamowienie[10] = new Dish;
$i=0;
?>
<form action ="index.php" method="post">
<input type="submit" value="Dinner" name="Dinner" style="margin: 35px; display: inline; ;width: 35%; height: 300px" />
<input type="submit" value="Cash" name="Cash" style="display: inline; width: 10%; height: 75px" />
<input type="submit" value="Drink" name="Drink" style="margin: 35px ; display: inline; width: 35%; height: 300px"/></br>
</form>
</br></br></br>
<?php
if(isset($_POST['Dinner']))
{
?>
<form action ="index.php" method="post" style="background-color: darkgreen;">
<input type="submit" value="Mexican" name="Mexican" style="display: inline; width: 10%; height: 100px" />
<input type="submit" value="Polish" name="Polish" style="display: inline; width: 10%; height: 100px" />
<input type="submit" value="Italy" name="Italy" style=" display: inline; width: 10%; height: 100px"/></br>
</form>
<?php
}
elseif(isset($_POST['Drink']))
{
?>
<form action ="index.php" method="post" style="background-color: darkgreen;">
<input type="submit" value="ice" name="ice" style=" display: inline;width: 10%; height: 100px" />
<input type="submit" value="lemon" name="lemon" style=" display: inline;width: 10%; height: 100px" />
</form>
<?php
}
if(isset($_POST['Mexican'])) {
?>
<form action ="index.php" method="post" style="background-color: darkblue;">
<input type="submit" value="Mex_Lunch" name="Mex_Lunch" style=" display: inline;width: 10%; height: 100px" />
<input type="submit" value="Mex_Desser" name="Mex_Desser" style=" display: inline;width: 10%; height: 100px" />
</form>
<?php
} else if(isset($_POST['Polish'])) {
?>
<form action ="index.php" method="post" style="background-color: darkblue;">
<input type="submit" value="Pol_Lunch" name="Pol_Lunch" style=" display: inline;width: 10%; height: 100px" />
<input type="submit" value="Pol_Desser" name="Pol_Desser" style=" display: inline;width: 10%; height: 100px" />
</form>
<?php
} else if(isset($_POST['Italy'])) {
?>
<form action ="index.php" method="post" style="background-color: darkblue;">
<input type="submit" value="It_Lunch" name="It_Lunch" style=" display: inline;width: 10%; height: 100px" />
<input type="submit" value="It_Desser" name="It_Desser" style=" display: inline;width: 10%; height: 100px" />
</form>
<?php
} else if(isset($_POST['Mex_Desser'])) {
echo "Mex_Des";
$zamowienie[$i]=$Mexican_Desser;
$zamowienie[$i]->getName();
$i++;
$zamowienie[$i]=$Mexican_Dinner;
$zamowienie[$i]->getName();
$i++;
} else if(isset($_POST['Mex_Lunch'])) {
echo "Mex_Din";
$zamowienie[$i]=$Mexican_Dinner;
$i++;
} else if(isset($_POST['Pol_Desser'])) {
echo "LUNCH + DESSER POL";
$zamowienie[$i]=$Polish_Desser;
$i++;
$zamowienie[$i]=$Polish_Dinner;
$i++;
} else if(isset($_POST['Pol_Lunch'])) {
echo "Lunch pol";
$zamowienie[$i]=$Polish_Dinner;
$i++;
} else if(isset($_POST['It_Desser'])) {
echo "LUNCH + DESSER ITALY";
$zamowienie[$i]=$Italy_Desser;
$i++;
$zamowienie[$i]=$Italy_Dinner;
$i++;
} else if(isset($_POST['It_Lunch'])) {
echo "Lunch italy";
$zamowienie[$i]=$Italy_Dinner;
$i++;
}
?>
</div>