如何重新加载页面,完成后移动到下一页

时间:2018-06-03 04:20:51

标签: php

我正在构建一个食谱应用程序,我的“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'])){
}

行是不正确的,因为它允许它们输入一种成分,但由于它现在已经设定,它会向右跳过,允许它们输入第二种成分。

谢谢!

1 个答案:

答案 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';
}