我正在构建一个食谱应用程序,我的“add_recipe”过程的一部分是3页。第一个增加了主要细节。
我的第二页允许用户通过输入信息并单击按钮将配料添加到配方中。当他们完成添加他们想要的所有成分后,他们有第二个按钮点击,将所有成分添加到表格中的配方并移动到第3页。
接下来我想把它们带到一个页面,在那里他们可以添加烹饪食谱的说明。我复制了添加成分的过程(他们可以使用第一个按钮继续添加说明,或者通过单击第二个按钮将说明添加到表中)。
以下是我遇到的问题:
使用以下代码,我可以执行以下操作:
一个。继续添加成分,然后在第二个按钮点击进入配方页面而不按说明操作:
if ((empty($title) || empty($subtitle)) && !isset($_POST['ingredient'])){
include 'inc/add-recipe.php';
}else {
//Load Ingredient form until all ingredients added
include 'inc/add-ingredient.php';
}
B中。用户可以输入一个成分,然后强制他们进入第3页
if ((empty($title) || empty($subtitle)) && !isset($_POST['ingredient'])){
include 'inc/add-recipe.php';
}elseif (!isset($_POST['ingredient'])){
//Load Ingredient form until all ingredients added
include 'inc/add-ingredient.php';
}else{
include 'inc/add-instruction.php';
}
℃。用户被迫进入第3页而不允许他们输入成分
if ((empty($title) || empty($subtitle)) && !isset($_POST['ingredient'])){
include 'inc/add-recipe.php';
}else {
//Load Ingredient form until all instructions added
include 'inc/add-instruction.php';
}
我想做的是让他们输入尽可能多的成分,然后将他们带到第3页,在那里他们可以添加尽可能多的指令。最后,将它们带到新配方的页面。
这段代码的哪一部分我不正确?好像是
elseif(!isset($_POST['ingredient'])){
}
行是不正确的,因为它允许它们输入一种成分,但由于它现在已经设定,它会向右跳过,允许它们输入第二种成分。
谢谢!
答案 0 :(得分:0)
我个人会使用JS并将所有内容放在一个表单中
但是如果你想用php保留它,那么就没有办法告诉用户想要添加多少成分,因此你当前的逻辑不会起作用。
我建议处理脚本
<form action="recipe.php?id=<?php echo $recipe_id; ?>" method="post">
为每个阶段分配一个currentStatus。
例如new形式currentStatus = 0;
一旦add-recipe完成,currentStatus = 1
成分完成currentStatus = 2
等等。
然后在你的
上if ( $currentStatus == false || empty($title) || empty($subtitle)
{
include 'inc/add-recipe.php';
}
elseif ( $currentStatus == 1 )
{
include 'inc/add-ingredient.php';
}
elseif ( $currentStatus == 2 )
{
include 'inc/add-instruction.php';
}