Heim Backend-Entwicklung PHP-Tutorial Yii使用ajax验证显示错误messagebox的解决方法_PHP

Yii使用ajax验证显示错误messagebox的解决方法_PHP

May 31, 2016 pm 06:15 PM
ajax yii 显示 错误 验证

本文实例讲述了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:

代码如下:

beginWidget('CActiveForm',array(
    'id'=>'post-form',                      //这是表单id
    'enableAjaxValidation'=>true,      //这里一定写 true
)); ?>
   

   


         echo $form->labelEx($model,'title');
 ?>
        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程序设计有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Vorgang konnte nicht abgeschlossen werden (Fehler 0x0000771). Druckerfehler Der Vorgang konnte nicht abgeschlossen werden (Fehler 0x0000771). Druckerfehler Mar 16, 2024 pm 03:50 PM

Wenn bei der Verwendung Ihres Druckers eine Fehlermeldung angezeigt wird, z. B. dass der Vorgang nicht abgeschlossen werden konnte (Fehler 0x00000771), liegt dies möglicherweise daran, dass die Verbindung zum Drucker getrennt wurde. In diesem Fall können Sie das Problem mit den folgenden Methoden lösen. In diesem Artikel besprechen wir, wie Sie dieses Problem auf einem Windows 11/10-PC beheben können. Die gesamte Fehlermeldung lautet: Der Vorgang konnte nicht abgeschlossen werden (Fehler 0x0000771). Der angegebene Drucker wurde gelöscht. Beheben Sie den Druckerfehler 0x00000771 auf einem Windows-PC. Um den Druckerfehler zu beheben, konnte der Vorgang nicht abgeschlossen werden (Fehler 0x0000771). Der angegebene Drucker wurde auf einem Windows 11/10-PC gelöscht. Befolgen Sie diese Lösung: Starten Sie die Druckspule neu

Lösung für den Windows Update-Eingabeaufforderungsfehler 0x8024401c Lösung für den Windows Update-Eingabeaufforderungsfehler 0x8024401c Jun 08, 2024 pm 12:18 PM

Inhaltsverzeichnis Lösung 1 Lösung 21. Löschen Sie die temporären Dateien von Windows Update 2. Reparieren Sie beschädigte Systemdateien 3. Anzeigen und Ändern von Registrierungseinträgen 4. Schalten Sie die IPv6-Netzwerkkarte aus 5. Führen Sie das WindowsUpdateTroubleshooter-Tool zur Reparatur aus 6. Schalten Sie die Firewall aus und andere verwandte Antivirensoftware. 7. Schließen Sie den WidowsUpdate-Dienst. Lösung 3 Lösung 4 „0x8024401c“-Fehler tritt während des Windows-Updates auf Huawei-Computern auf Symptom Problem Ursache Lösung Immer noch nicht gelöst? Vor kurzem musste der Webserver aufgrund von Systemschwachstellen aktualisiert werden. Nach der Anmeldung am Server wird der Fehlercode 0x8024401c angezeigt

Detaillierte Methode zum Entsperren mithilfe der freundunterstützten WeChat-Verifizierung Detaillierte Methode zum Entsperren mithilfe der freundunterstützten WeChat-Verifizierung Mar 25, 2024 pm 01:26 PM

1. Klicken Sie nach dem Öffnen von WeChat auf das Suchsymbol, geben Sie das WeChat-Team ein und klicken Sie zum Betreten auf den Dienst unten. 2. Klicken Sie nach der Eingabe auf die Option „Self-Service-Tool“ in der unteren linken Ecke. 3. Klicken Sie nach dem Anklicken in den Optionen oben auf die Option zum Entsperren/Einspruch für eine zusätzliche Verifizierung.

Warum zeigt die Xiangxiangfuzhai-App einen Fehler an? Warum zeigt die Xiangxiangfuzhai-App einen Fehler an? Mar 19, 2024 am 08:04 AM

Der Anzeigefehler ist ein Problem, das in der Xiangxiang Fuzhai-App auftreten kann. Einige Benutzer sind sich nicht sicher, warum die Xiangxiang Fuzhai-App Fehler anzeigt. Dies kann an Netzwerkverbindungsproblemen, zu vielen Hintergrundprogrammen, falschen Registrierungsinformationen usw. liegen. Dies ist die Einführung des Herausgebers zur Behebung von App-Anzeigefehlern für Benutzer. Interessierte Benutzer sollten vorbeikommen und einen Blick darauf werfen! Warum zeigt die Xiangxiang Fuzhai-App eine Fehlerantwort an: Netzwerkverbindungsproblem, zu viele Hintergrundprogramme, falsche Registrierungsinformationen usw. Details: 1. [Netzwerkproblem] Lösung: Überprüfen Sie den Netzwerkstatus der Geräteverbindung, stellen Sie die Verbindung erneut her oder wählen Sie eine andere Netzwerkverbindung aus benutzen können. 2. [Zu viele Hintergrundprogramme] Lösung: Schließen Sie andere laufende Programme und geben Sie das System frei, was die Ausführung der Software beschleunigen kann. 3. [Falsche Registrierungsinformationen

Linux Hoppla: Detaillierte Erklärung, was dieser Fehler bedeutet Linux Hoppla: Detaillierte Erklärung, was dieser Fehler bedeutet Mar 21, 2024 am 09:06 AM

LinuxOops: Detaillierte Erklärung der Bedeutung dieses Fehlers, spezifische Codebeispiele erforderlich. Was ist LinuxOops? In Linux-Systemen bezieht sich „Ups“ auf eine Situation, in der ein schwerwiegender Fehler im Kernel zum Absturz des Systems führt. Oops ist eigentlich ein Kernel-Absturzmechanismus, der das System stoppt, wenn ein schwerwiegender Fehler auftritt, und relevante Fehlerinformationen ausgibt, damit Entwickler das Problem diagnostizieren und beheben können. Hoppla treten normalerweise im Kernel-Space auf und haben nichts mit User-Space-Anwendungen zu tun. Wenn der Kernel auftrifft

Neue Funktionen in PHP 8: Verifizierung und Signierung hinzugefügt Neue Funktionen in PHP 8: Verifizierung und Signierung hinzugefügt Mar 27, 2024 am 08:21 AM

PHP8 ist die neueste Version von PHP und bietet Programmierern mehr Komfort und Funktionalität. Bei dieser Version liegt ein besonderer Schwerpunkt auf Sicherheit und Leistung, und eine der bemerkenswerten neuen Funktionen ist die Hinzufügung von Verifizierungs- und Signierungsfunktionen. In diesem Artikel werfen wir einen genaueren Blick auf diese neuen Funktionen und ihre Verwendung. Verifizierung und Signierung sind sehr wichtige Sicherheitskonzepte in der Informatik. Sie dienen häufig dazu, sicherzustellen, dass die übermittelten Daten vollständig und authentisch sind. Verifizierung und Signaturen werden beim Umgang mit Online-Transaktionen und sensiblen Informationen noch wichtiger, denn wenn jemand in der Lage ist, die Daten zu manipulieren, könnte dies möglicherweise der Fall sein

Interpretation des Oracle-Fehlers 3114: Ursachen und Lösungen Interpretation des Oracle-Fehlers 3114: Ursachen und Lösungen Mar 08, 2024 pm 03:42 PM

Titel: Analyse des Oracle-Fehlers 3114: Ursachen und Lösungen Bei der Verwendung einer Oracle-Datenbank stoßen Sie häufig auf verschiedene Fehlercodes, unter denen Fehler 3114 am häufigsten vorkommt. Bei diesem Fehler handelt es sich im Allgemeinen um Datenbankverbindungsprobleme, die beim Zugriff auf die Datenbank zu Ausnahmen führen können. In diesem Artikel wird der Oracle-Fehler 3114 interpretiert, seine Ursachen erläutert und spezifische Methoden zur Behebung des Fehlers sowie zugehörige Codebeispiele vorgestellt. 1. Definition von Fehler 3114 Oracle-Fehler 3114 bestanden

Streaming-Server löst Fehler aus [BEHOBEN] Streaming-Server löst Fehler aus [BEHOBEN] Mar 25, 2024 am 09:40 AM

Bekommt ein Streaming-Server einen Fehler auf Ihrem Computer? Stremio ist ein plattformübergreifender Video-Streaming-Dienst, mit dem Sie Filme, Fernsehsendungen, Live-TV und mehr streamen und ansehen können. Einige Benutzer haben berichtet, dass sie beim Versuch, die Anwendung zu starten, diesen Fehler erhalten. Fehler können unter verschiedenen Umständen auftreten, einschließlich Internet- und Serverproblemen. Dieser Fehler kann auch bei Verwendung der Webversion von Stremio auftreten. Auch Eingriffe von Antivirensoftware oder Firewalls können zu Fehlern führen. In jedem Fall können Sie das Problem mit dieser Anleitung beheben. Beim Ausführen der Stremio-Anwendung unter Windows kann der Fehler „Stremio Streaming Server hat einen Fehler ausgelöst“ auftreten

See all articles