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));
?>
マークダウン構文を使用できます。 p>
echo $form->error($model,'content');
?>
$this->endWidget();
?>
このような良い画像は、yii ajax 表示の問題を解決しました。
ここで説明されている Yii フレームベースの大規模な PHP プログラムの設計が役立つことを望みます。
http://www.bkjia.com/PHPjc/920974.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/920974.html技術記事 Yii を使用して ajax テストを表示するメッセージボックスの解決方法、yiimessagebox では、Yii を使用して ajax テストを表示するメッセージボックスの解決方法を説明します。