我需要为我的一个项目创建一个向导系统,这是我现在正在处理它的方式。
/*
Just pseudo functions
*/
function wizard_start()
{
//Fill the table with default values, set isVisible column to 0
}
function wizard_step_1()
{
//Update necessary columns (e.g Name, sirname)
}
function wizard_step_2()
{
//Update necessary columns (e.g Date, Type)
}
...
function wizard_final()
{
//Do the last touches and update isVisible to 1 so it will appear on website
}
我保持现在的步骤。等;
isset($_session['step2_completed'])
$this->wizard_step_3();
isset($_session['step3_completed'])
$this->wizard_step_4();
...
响应是通过XMLHttpRequest
进行的,并且需要JSON格式的数据。如果JSON返回true,则Javascript会加载下一个向导。 (通常是用于不同任务的HTML表单。)
我想知道是否有更好,更好的练习向导替代方案。例如,我不知道保持当前步骤是一种好的还是坏的做法。
基本上,你会如何自己设计这样的任务,尽量使用最佳实践?
谢谢。
答案 0 :(得分:4)
保持会话变量中的当前步骤没有问题,具有以下良好实践要点:
isVisible
阻止半填充记录导致问题,但通常您会将此信息临时存储(例如变量),并且只有在用户点击“完成”时才提交完整记录。当然,例外情况是用户输入的丢失是一个问题。例如。在电子邮件网站中,我们不希望丢失会话意味着丢失草稿电子邮件。step_x_completed
的整数)。这样,您可以减少状态变量,减少出错的机会。