关于数据提交判断的一个问题
发布于:2022-01-17 09:50:54
#1 none110
J大
假设A页面是form页面,B页面是数据判断及写入数据库页面。
A页面的内容在B页面做判断。
平时写程序的时候,输出个错误提示框,然后后面跟个js的history.back() ,回来页面,原来输入的内容还是有的。
但是用了sp之后好像回来之后,原本输入的东西都清空了。
我搜了下论坛你以前给别人的回复,要加个meta和给input加个behavior,但是我加了之后,编辑器就有毛病了,当然,可以给某个id定义这个。
我想知道是不是有更好的方法解决?
2011-12-26 17:55:21
#2 coolhpy
在B页面先缓存用户提交的数据,再判断,出错时跳转A页面(不是后退),打开A页面时读取出缓存并填到输入框中。
2011-12-27 08:44:25
#3 jake
在B页面先缓存用户提交的数据,再判断,出错时跳转A页面(不是后退),打开A页面时读取出缓存并填到输入框 ...
coolhpy 发表于 2011-12-27 08:44 
对,从程序读出提交的内容填到输入框,那是比较友好的方法。这里介绍同一action提交的方法。
// 这里是一个action,不是函数
public function myform()
{
$err = null; // 错误信息,一开始是空
if($content = $this->spArgs('content ')){
// 进行提交后的处理
...
// 成功就跳走
$this->jump(xxx);
// 失败就记录一个错误信息
$err = '某某错误';
}
// 赋值
$this->data = $this->spArgs(); // 全部提交值
$this->err = $err; // 错误信息
$this->display();
}
在模板内
主要的做法就是提交到同一个action,在没有提交前,只会绕过if执行下面的显示页面表单,提交后会执行if部分,如果if部分出现错误,也会落回表单显示。如果if部分成功,那么就跳转出去。
2011-12-27 09:07:28
#4 none110
这个前提是本身input没有默认值,如果input本身有值呢?
2011-12-27 14:34:26
#5 coolhpy
第一次打开A页面时,有默认值当然显示默认值,,但是出错后再次返回A页面时,不管原来的默认值是什么,再次显示的就应该是用户之前填写的值呀
不存在逻辑错误吧?
2011-12-27 14:48:37
#6 jake
这个前提是本身input没有默认值,如果input本身有值呢?
none110 发表于 2011-12-27 14:34 
用if做个小判断就行
2011-12-27 15:35:40
#7 none110
恩,我回头if下试试,呵呵。。
2011-12-27 16:16:42
#8 none110
感谢各位,和孜孜不倦的j大。辛苦。。
2011-12-27 16:17:03
#9 klboy
原来 $this->spArgs();是获取全部数据哦,又学到一招
2011-12-27 22:53:21