本文实例讲述了Yii使用ajax验证显示错误messagebox的解决方法。分享给大家供大家参考。具体方法如下:

yii 自带了ajax 表单验证 这个可能有些朋友不知道了,但我今天在使用yii 自带的ajax 表单验证 时碰到一些问题,下面我来整理例子与大家参考一下。

在Yii中,可以利用ajax执行一个action,但是这个action有时候会有弹出错误讯息的需求,这时候的处理方式如下

基本思想

利用exception,比如:

throw new CHttpException(403, 'You are not authorized to perform this action.');

如果这个异常是 CHttpException 或者 YII_DEBUG 为 true的时候,错误消息可以通过CErrorHandler::errorAction来显示。在yiic默认生成的代码中,就是通过在 config/main.php 中加入如下代码来实现的

'errorHandler' => array(

'errorAction' => 'site/error',),

但是在Yii  1.1.9 以上,ajax请求抛出的exceptions是通过CApplication::displayException()来显示的。这使得我们无法定制消息的显示方式。

CGridView 删除请求抛出异常的话就是这个样子,(YII_DEBUG 为 true )

Yii 1.1.9 检查ajax请求的逻辑被移除了,所以现在即便是ajax的异常也是通过CErrorHandler::errorAction处理的。

这样ajax的消息就可以DIY了。

示例

通过如下代码

public function actionError(){

if($error=Yii::app()->errorHandler->error)

{

if(Yii::app()->request->isAjaxRequest)

echo $error['message'];

else

$this->render('error', $error);

}

}

后来又发现一个站长分享了一段代码

model:

public function rules()

{

// NOTE: you should only define rules for those attributes that

// will receive user inputs.

return array(

array('content, author, email', 'required'),

array('author, email, url', 'length', 'max'=>128),

array('email','email'),

array('url','url'),

);

}

controller:

if(isset($_POST['ajax']) && $_POST['ajax']==='comment-form')

{

echo CActiveForm::validate($model);

Yii::app()->end();

}

view:

<?php $form=$this->beginWidget('CActiveForm',array(

'id'=>'post-form',                      //这是表单id

'enableAjaxValidation'=>true,      //这里一定写 true

)); ?>

echo $form->labelEx($model,'title');

?>

<?php echo $form->textField($model,'title',array('size'=>80,'maxlength'=>128));

?>

echo $form->error($model,'title');

?>

echo $form->labelEx($model,'content');

?>

echo CHtml::activeTextArea($model,'content',array('rows'=>10, 'cols'=>70));

?>

You may use Markdown syntax.

echo $form->error($model,'content');

?>

$this->endWidget();

?>

这样好像很好的解决了yii ajax显示问题。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

yii ajax验证失败返回提示,Yii使用ajax验证显示错误messagebox的解决方法相关推荐

  1. yii ajax验证失败返回提示,Yii ajax显示错误提示,messagebox

    在Yii中,可以利用ajax执行一个action,但是这个action有时候会有弹出错误讯息的需求,这时候的处理方式如下 基本思想 利用exception,比如 throw new CHttpExce ...

  2. Delphi7 提示can‘t load package *.bpl 错误问题的解决方法

    一般是环境变量没有包含Delphi 安装目录: C:\Program Files (x86)\Delphi7\Projects\Bpl 如果确认有的话,并且提示的文件也存在的话,win10电脑刚装完d ...

  3. EF提示一例对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性的解决

    EF提示一例对一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性的解决 在向数据库添加数据时出现该错误. 对出先错误的语句进行try ...

  4. idea验证失败_iphone x验证失败怎么办?苹果iphone x验证失败的解决方法

    前几日刚入手iphone x,今天发现iphone x验证失败了,不知道什么原因最后研究了一番发现是网络的原因,那么如何解决呢?下面由我带给大家iphonex验证失败,苹果x验证失败解决方案. 苹果i ...

  5. sql服务器网页无法连接到服务器失败,SQL2008无法连接到服务器,用户’XX’登录失败(错误18456)解决方法...

    SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法 SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方 ...

  6. 重装系统 计算机意外遇到错误无法运行,win7系统重装笔记本提示"计算机意外的重新启动或遇到错误"的解决方法...

    今天和大家分享一下win7系统重装笔记本提示"计算机意外的重新启动或遇到错误问题的解决方法,在使用win7系统的过程中经常不知道如何去解决win7系统重装笔记本提示"计算机意外的重新启动或遇到错误的问 ...

  7. Win10无法开机提示自动修复无法修复你的电脑的有效解决方法

    最近Win10系统出现了无法开机并无法自动修复系统的问题,然后提示了"自动修复,无法修复你的电脑",在高级选项中尝试安全模式也无法进入.那么遇到这个问题,在不重装系统的情况下,我们 ...

  8. 安装Windows提示无法在驱动器0分区上安装windows解决方法

    在通过U盘或光盘安装win8/win8.1/win10系统时,不少用户遇到无法安装的问题,提示"无法在驱动器0的分区1上安装windows",格式化分区1也不能解决,进而提示Win ...

  9. 为什么电脑浏览器显示时钟快了_xp打开网页提示“你的时钟慢了”的原因及解决方法...

    近期,一位小伙伴反馈说xp系统打开网页提示"你的时钟慢了,您计算机的日期和时间不正确,因此无法与www.baidu.com建立私密连接"这个问题的出现,一般是我们电脑的时钟回到出厂 ...

最新文章

  1. mysql opensuse_opensuse免安装mysql
  2. 十招搞定SQL2K安全
  3. Python之数据拆分——groupby()方法
  4. 3.5 訪问者模式(5.11)
  5. 海南大学信号与系统838考研经验(3)
  6. Xcode9安装插件,xcode9安装使用Alcatraz
  7. Blazor使用PDFObject预览pdf文件
  8. mysql 生成随机手机号和随机中文名
  9. ITIL 4Foundation认证
  10. So Different You Are
  11. 英语学习——长难句01
  12. Spring Boot电商项目57:订单模块六:【前台:生成支付二维码】接口;(支付url的拼凑;利用zxing生成二维码;二维码图片的存储;真实地址与可访问地址的转换;)
  13. python unicode码转换_python实现unicode转中文及转换默认编码的方法
  14. Windows下免杀思路总结
  15. fish shell一个专为90后设计的命令行shell
  16. WSS、SSL 和 https 之间的关系
  17. 春季人才市场外企就业竞争最激烈销售岗位需求量最大
  18. 如何在程序中创建快捷方式?
  19. Navicat Premium for Mac 快捷键
  20. 一个简单的SpringMVC需要哪些jar包[Spring4]

热门文章

  1. 如何向妈妈解释什么是爬虫
  2. 如何通俗的理解函数的极限_函数的极限问题怎么解释更通俗易懂?初高中数学辅导...
  3. 微信小程序之发送通知消息(通过openid推送消息给用户)
  4. C语言RSA实现对字符串加密,C语言实现RSA加解密算法
  5. 2023版golang面试题100道(map)
  6. 英飞凌TC387学习
  7. SA387Gr22Cl2美标容器板介绍,SA387Gr22Cl2钢板规格8-90mm厚
  8. Xilinx SDK编译Microblaze时出错
  9. 【Yolo3】入门目标检测实验--Python+Opencv2+dnn
  10. VS2010 调试C++项目 fatal error LNK1123 错误解决办法