2016-08-21 2 views
0

状況は、フォーム提出が成功するとモーダルを表示する必要があります。 私が現在行っていることは、送信してフォームが正常に送信された後、同じ入力ページにリダイレクトすることです。今質問は、フラッシュデータを設定し、リダイレクト時にモーダルを切り替えるためにjqueryスクリプトを渡すことは可能ですか?ここでは、投稿が成功した後にコントローラ機能でどのように設定するのですか。codeigniterのflashdataにjqueryスクリプトを渡して、ブートストラップモーダルをトリガ/表示する方法はありますか?

$js = "<script>$('#mymodal').modal('show');</script>"; 
$this->session->set_flashdata('js',$js); 

次に、ビューファイル上に、リダイレクト時にトリガーするように、私はチェッカーを配置しました。

if($this->session->flashdata('js')){ 
    echo $this->session->flashdata('js'); 
} 

が、残念ながら、モーダルはすべてでポップアップするようにトリガーされませんでした。..方法を示して?

+1

2番目のコードブロックを '$(document).on(ready(){/ **ここ* /})'に入れましたか? – Tpojka

+0

あなたはビューファイルを意味しますか?私はあなたのスニペットの内側にフラッシュデータをエコーする必要がありますか? – sasori

+0

はい。 PHP変数が最初に来るので、jQueryとブートストラップjsコードのロードの前にエコーしないようにする必要があります。 – Tpojka

答えて

0

あなたはこの方法でそれを行うことができますトグル方法..

からを真(Tpojkaコメントで述べたように)、文書準備の上、モーダルおよび内部JSのための構造を準備し使用している場合coontrollerは...あなたは...

$js = "1"; 
$this->session->set_flashdata('js',$js); 

、ビュー、

<?php 
    if(isset($this->session->flashdata('js')) && $this->session->flashdata('js')=="1"){ 
    ?> 
     <script>$('#mymodal').modal('show');</script> 
    <?php } ?> 

ではそれが正常に動作することになるような単純なフラッシュメッセージを送る、共同をお楽しみくださいde。

0

ブートストラップf.e.を使用している場合、モーダルを切り替える方法があります:"$('#myModal').modal('toggle')。私はcodeigniter $this->session->set_flashdata('modal', 'true');でフラッシュデータ内の変数を渡します。そして、PHPのチェックの内側、そしてif ($('#myModal').length > 0){... //toggle method}

関連する問題