第九区

一个程序员的经验笔记

jqGrid如何获取服务器返回的错误信息

| 暂无评论

jqGrid自身有很强的表单格式验证功能,但是我们都知道,无论前端如何验证,服务器端接收信息的时候,总是要再验证一遍才算安全,另外有些验证,比如用户名和电子邮件是否重复,是只能在服务器端验证的。服务器端的验证结果如果错误,也应该要反馈一个消息给前端进行显示。

jqGrid本身自带功能,当系统接收到常见的网络连接错误信息时,会给出提示,如404、500错误等。利用这一功能,我们可以自定义一个509错误,用来回显错误格式。

这是系统输出的效果图:

自定义509错误用于回显

public function add(){
        //$row->id,$row->guest,$staffs[$row->staffid]->name,$departments[$row->departmentid]->name,
        //$row->money,$row->memo,$row->realday,$row->payday
    	$post=$this->getRequest()->getPost();
        if(!$post['guest']){
            header('HTTP/1.1 509 请输入客户名称');
            exit;
        }
        $staffId=(int)$post['staff'];
        if(!$staffId){
            header('HTTP/1.1 509 请选择员工');
            exit;
        }
        $departmentId=(int)$post['department'];
        if(!$departmentId){
            header('HTTP/1.1 509 请选择部门');
            exit;
        }
        $money=$post['money'];
        if(!is_numeric($money) || $money<=0){
            header('HTTP/1.1 509 请输入正确金额');
            exit;
        }
        $validDate=new Zend_Validate_Date('Y-m-d');
        if(!$validDate->isValid($post['realday'])){
            header('HTTP/1.1 509 请输入正确的发生日期:'.$post['realday']);
            exit;            
        }
        if($post['payday'] && !$validDate->isValid($post['payday'])){
            header('HTTP/1.1 509 请输入正确的到帐日期');
            exit;            
        }
        //......其它代码
    }

 

发表评论

*为必填字段!