我设计了一个用户配置文件表单,这是一个非常复杂的长表单.在用户提交并保存之前,需要验证表单.
这是一个问题:
将表单保存到数据库中时,涉及多个表.现在我想介绍一个名为"保存表单"的函数,它在内部不验证表单,只保存用户输入的内容.
存在潜在问题,例如:
Q1>如何保存临时数据?
Q2>如果用户在未提交表单的情况下保存临时数据然后退出,我该怎么办?此功能类似于Gmail提供的草稿功能.
您可以为要保存的字段创建会话.例如
$this_form = array(
'field1' = 'value',
'field2' = 'value2',
);
Run Code Online (Sandbox Code Playgroud)
然后将其保存到会话中:
$_SESSION['this_form'] = $this_form;
Run Code Online (Sandbox Code Playgroud)
如果你想变得非常懒,你可以在会话中保存$_POST
或$_GET
变量.
$_SESSION['my_post'] = $_POST;// or $_GET depending on your form.
Run Code Online (Sandbox Code Playgroud)
当然,在你验证它们并进行常规接种之前,你知道不要对它们做任何事情.
您可以稍后通过调用它来重新读取保存的会话变量.
即
echo $_SESSION['this_form']['field1'];
Run Code Online (Sandbox Code Playgroud)
完成会话后,可以使用unset命令将其删除:
即
unset $_SESSION['this_form']
Run Code Online (Sandbox Code Playgroud)
您还可以使用会话功能:
Q1 >如何保存临时数据?
有几种方法可以做到这一点.您可以将其保存到其他表.您也可以(可能更受欢迎)将其保存到与完成的配置文件相同的表中,但为此目的通过列将其标记为不完整.可以命名此列complete
.如果配置文件未完成,则将其设置为0
或false
.如果完成,则将其设置为1
或true
.然后,您可以根据它进行查询.
然后,您可以"验证"通过一切必要的程序数据和列设置1
或true
根据需要.
Q2 >如果用户在未提交表单的情况下保存临时数据然后退出,我该怎么办?此功能类似于Gmail提供的草稿功能.
上面的答案也应该达到这个目的.
如果您需要重新加载数据并允许用户继续填写不完整的表单,您需要为它们获取某种标识符以允许此操作.您可以通过设置cookie或通过表单顶部输入的某种唯一标识符来完成此操作 - 例如SSN,电话号码,学生ID#等(或组合).
如果您正在寻找Gmail草稿功能等功能,则需要实施某种AJAX调用,每隔X秒/分钟自动触发一次以自动保存数据.
归档时间: |
|
查看次数: |
8509 次 |
最近记录: |