关于数据提交判断的一个问题

#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();
}


在模板内
 

<{if $err != null}>出错信息<{/if}>







主要的做法就是提交到同一个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