ホームページ > バックエンド開発 > PHPチュートリアル > Yii は Ajax 検証を使用してエラーメッセージボックスを表示するソリューション、yiimessagebox_PHP チュートリアル

Yii は Ajax 検証を使用してエラーメッセージボックスを表示するソリューション、yiimessagebox_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:12:23
オリジナル
795 人が閲覧しました

Yii は Ajax 検証を使用してエラーメッセージボックスの解決策を表示します、yiimessagebox

この記事の例では、Ajax 検証を使用して Yii に表示されるエラー メッセージ ボックスの解決策を説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです

Yii には ajax フォーム検証が付属しています。これを知らない友人もいるかもしれませんが、今日、yii に付属する ajax フォーム検証を使用するときにいくつかの問題に遭遇しました。参考までに例をまとめておきます。

Yiiではajaxを使用してアクションを実行することができますが、このアクションは時々エラーメッセージを表示する必要があります。その処理方法は次のとおりです

基本的な考え方

次のような例外を使用します:

コードをコピーします コードは次のとおりです:
throw new CHttpException(403, 'このアクションを実行する権限がありません。');

例外が CHttpException であるか、YII_DEBUG が true の場合、CErrorHandler::errorAction を通じてエラー メッセージを表示できます。デフォルトで yiic によって生成されるコードでは、次のコードを config/main.php に追加することでこれが実現されます

コードをコピーします コードは次のとおりです:
'errorHandler' => array(
'errorAction' => 'サイト/エラー',),

ただし、Yii 1.1.9 以降では、ajax リクエストによってスローされた例外は 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()->リクエスト->isAjaxRequest)
echo $error['message'];
それ以外
$this->render('error', $error);
}
}

後でウェブマスターがコードの一部を共有していたことを知りました

モデル:

コードをコピーします コードは次のとおりです:
public function rules()
{
// 注: ルールは、次の属性に対してのみ定義する必要があります
// ユーザー入力を受け取ります。
return array(
array('コンテンツ, 著者, メールアドレス', '必須'),
array('作成者, メールアドレス, URL', '長さ',​​ '最大'=>128),
array('電子メール','電子メール'),
array('url','url'),
);
}

コントローラー:
コードをコピーします コードは次のとおりです:
if(isset($_POST['ajax']) && $_POST['ajax']==='comment-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}

ビュー:
コードをコピーします コードは次のとおりです:
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));
 ?>
       

マークダウン構文を使用できます。
         echo $form->error($model,'content');
 ?>
   


 
$this->endWidget();
?>

このような良い画像は、yii ajax 表示の問題を解決しました。

ここで説明されている Yii フレームベースの大規模な PHP プログラムの設計が役立つことを望みます。

http://www.bkjia.com/PHPjc/920974.html

tru​​ehttp://www.bkjia.com/PHPjc/920974.html技術記事 Yii を使用して ajax テストを表示するメッセージボックスの解決方法、yiimessagebox では、Yii を使用して ajax テストを表示するメッセージボックスの解決方法を説明します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート