1

私は現在、ポップアップ ボックスにさまざまな種類のエラーを表示したい Web サイトで作業しています。エラーは、フォームの検証とフォームのアップロードに関連しています。次のようなさまざまな呼び出しを使用して、そのポップアップボックスをロードするために多くのことを試しました

$this->load->view('registration_popup'); 
$this->load->view('index.php#register_popup'); 
$this->load->view('#register_popup'); 

しかし、すべて静脈内です。「index.php」と「registration_popup」の 2 つのページがあります。「registration_popup」ページは「index.php」ファイルの一部であり、これをスライスして index.php に含めます。index.php の中に「登録」というアンカーがあり、クリックすると登録ポップアップが表示されます。さて、私の質問は、ユーザーが無効なデータを配信したとき、またはアップロード エラーが発生したときにエラーを表示できるように、ポップアップ ボックスを呼び出す方法です。

4

1 に答える 1

0

ビューがどのように機能するかについて少し混乱しているかもしれません。ローダーは、views/指定した名前に対応するディレクトリにファイルを単純にインクルードし、(オプションで) 配列をアンパックして、ビュー内のビュー データにアクセスできるようにします。各呼び出し (デフォルト) は、ビューにあるものを解析して出力バッファーに配置するだけです。

通知の場合は、ローダーに渡す配列にエラー メッセージを設定し、それをページに含める/確認することをお勧めします。JS を使用して、ユーザーが通知を閉じたり、一定期間後に非表示にしたりできるようにします。

たとえば(コントローラー):

$pageData['error'] = 'The database server was eaten by an elephant';

$this->load->view('example', $pageData);

次に、あなたの見解では:

<?php
if (isset($error)):
?>
<div id="error"><?php echo $error;?></div>
<?php
endif;
?>

次に、ユーザーがエラー div を閉じる (非表示または削除する) ための小さな JS、または要求を再試行するためのリンク、またはエラーのコンテキストで意味のあるものを必要とするだけです。小さな jQuery を使えば、これを簡単に行うことができます。

<?php
if (isset($error)):
?>
$(document).ready(function() {
    $('.dismiss', '#error').click(function() { 
        $('#error').fadeOut('fast', function() { 
         // any additional dom fiddling that needs done once it vanishes
        })
    })
})
<?php
endif;
?>

これは大まかな例です。もちろん、div を非表示にするためだけに jQuery をロードしないでください :) しかし、アイデアはわかります。「dismiss」のクラス属性を持つリンクをエラーに含めるだけです。ご覧のとおり、エラーがない場合は JS を含める必要はありません。

必要に応じて、ページの読み込み時にイベントを発生させる JS を追加することもできますが、それは少し奇妙に思えます。

于 2013-10-27T10:51:45.663 に答える