最新公告
  • 欢迎访问代码工坊,购买产品可享受在线工单服务!
  • 帝国CMS前端错误信息修改为ajax返回的方法

      帝国cms的错误信息是跳转方式,使用printerror函数,在/e/class/connect.php中。

      现代网站多采用ajax返回方式,因为ajax方式更为人性化,在本页面不发生跳转,用户体验更好,单独编写ajax返回工程量过大,我们对帝国cms进行改动,实现ajax效果。

      打开/e/class/connect.php文件,在328行增加如下代码:

    	elseif($ecms==5)//增加前台ajax返回
    	{
    		include ECMS_PATH.'e/data/'.LoadLang("pub/q_message.php");
    		$error=empty($novar)?$qmessage_r[$error]:$error;
    
    		$arr['msg']=$error;
    		$arr['status']='1';//1为失败
    		$arr['url']='';
    		echo json_encode($arr);
    		exit();
    	}

          增加了单独的返回方式5,程序处理传值时传入5即可。

    printerror("EmptyMember","history.go(-1)",5);

          前端js可通过ajax返回的信息进行判断和输出:

    // 验证手机号
    function isPhoneNo(phone) {
        var pattern = /^1[3456789]d{9}$/;
        return pattern.test(phone);
    }
    
    function RegForm(){
    		if($("#username").val()==''){
    			layer.msg('请输入账户');
    			$("#username").focus();
    			return false;
    		}
    		if($("#password").val()==''){
    			layer.msg('请输入密码');
    			$("#password").focus();
    			return false;
    		}
    		if($("#repassword").val()=='' | $("#repassword").val()!=$("#password").val()){
    			layer.msg('请再次输入密码');
    			$("#repassword").focus();
    			return false;
    		}
    		if($("#phone").val()==''){
    			layer.msg('请输入手机号码');
    			$("#phone").focus();
    			return false;
    		}
    		if (isPhoneNo($("#phone").val()) == false) {
    			layer.msg("手机号码不正确");
    			return false;
            }
    		if($("#key").val()==''){
    			layer.msg('请输入手机验证码');
    			$("#key").focus();
    			return false;
    		}
    		var layerindex = layer.load(2, {shade: false});
    		$.ajax({
    			url:"/api/user/docation.php",
    			type:"post",
    			dataType:"json",
    			data:{
    				ajax:1,
    				dotype:'register',
    				groupid:1,
    				username:$("#username").val(),
    				password:$("#password").val(),
    				repassword:$("#repassword").val(),
    				phone:$("#phone").val(),
    				key:$("#key").val()
    			},
    			success:function(result){
    				layer.closeAll('loading');
    				layer.msg(result.msg);
    				if(result.status==0){
    					window.location.href='/member/';
    				}
    			},
    			error:function(jqXHR){
    				layer.closeAll('loading');
    				console.log("发生错误" + jqXHR);
    			}
    		});
    }

    帝国CMS前端错误信息修改为ajax返回的方法

    发表评论