PHP で MVC フレームワークを使用しています。標準モデル/page_model.php、コントローラー/page.php、およびビュー/page.php。
私はユーザー登録スクリプトを持っています (ここから適応: php-login.netは、ユーザーが不適格に登録した場合にエラーメッセージを返します (たとえば、電子メールは既に取得されています):
私の controller/register.php では、これは次のように実現されます。
function register_action() {
$registration_successful = $this->model->registerNewUser();
$this->view->errors = $this->model->errors;
if ($registration_successful == true) {
$this->view->render('register/success'); // view/register/success.php
} else {
$this->view->render('register/error'); // view/register/error.php
}
}
model/register_model.php スクリプトでは、エラーが作成されると、特定のエラー メッセージで終了します。例えば
else {
$this->errors[] = FEEDBACK_UNKNOWN_ERROR
}
そして、このエラーはレンダリングされたビュー (view/register/error.php) に表示されます:
<?php
if (isset($this->errors)) {
foreach ($this->errors as $error) {
echo '<div class="system_message">'.$error.'</div>';
}
}
?>
これはすべてうまくいきます。さて、私の質問: 現時点では、ユーザーが複数のページからフォームを送信できるようにしています。エラーが発生するたびに、レジスタ/エラーをレンダリングします。ユーザーが別のページに送信されないように、実際にエラーを現在のページとインラインで返すにはどうすればよいですか (つまり、エラーメッセージが現在のビュー、ajax スタイルに挿入されます)。
私は、彼らがサイト エクスペリエンスのどこにいるかを失いたくないのです。理想的にはこれは PHP のみですが、コードの実装方法について具体的に教えていただければ、AJAX に関する回答もお願いします。