2016-05-26 6 views
2

コントローラのデフォルトの警告ボックスの代わりにbootstrapDialog警告(https://nakupanda.github.io/bootstrap3-dialog/)を使用しますが、動作しません。CodeigniterコントローラのBootstrapDialog警告

私はまた、コントローラにCSSやJSファイルをエコーし​​ようとしたが、私はビューの下部にgithub distフォルダから得たこれらのスクリプト

<link rel="stylesheet" href="assets/css/bootstrap-dialog.min.css" /> 
<script src="assets/js/bootstrap-dialog.min.js"></script> 

はコントローラ

function student(){ 

    if ($student_status == 'paid'){ 
    echo '<script type="text/javascript">'; 
    echo 'BootstrapDialog.alert('Your Registration was successful')'; 
    echo '</script>'; 
    } 
else { 
    // redirect url 
    } 
} 

を含ま失敗しました。私がデフォルトのalertboxをエコーし​​た場合、それはうまくいくのですか?

答えて

1

あなたはbootstrapDialogのCSSやJS例

を表示するために

<!-- Latest compiled and minified CSS --> 
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> 

<!-- Latest compiled and minified JavaScript --> 
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> 

http://jsfiddle.net/mreis1/YJdB7/1/

続く、ブートストラップCSSとブートストラップjsファイルを含める必要がありますので、ブートストラップ]ダイアログボックスが、ブートストラップ上に構築されています:

<!DOCTYPE html> 
<html> 
<head> 

    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/css/bootstrap-dialog.min.css" rel="stylesheet" type="text/css" /> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script> 

    <title>Bootstrap Dialog Test</title> 
</head> 

<body> 
<!-- IF SUCCESSFUL --> 
<?php $alert= ''; ?> 
<?php if ($alert == 'success'): ?> 

<script type = "text/javascript"> 
BootstrapDialog.alert('Your Registration was Successful'); 
</script> 

<?php endif; ?> 

<!-- IF FAILED --> 

<?php if($alert == 'failed'): ?> 

<script type = "text/javascript"> 
BootstrapDialog.alert({ 
      title: 'An Error Occured', 
      message: 'Your Registration failed', 
      type: BootstrapDialog.TYPE_DANGER, 
      buttonLabel: 'Close' 

     }); 

</script> 
<?php endif; ?> 

</body> 
</html> 

コントローラー:

function student(){ 

    if ($student_status == 'paid'){ 
    $data['alert'] = 'success'; 
    } 
else { 
    $data['alert'] = 'failed'; 
    } 
    $this->load->view(view_page, $data); 
} 

出力:

Success Alert

Failed Alert

2

最初 - あなたはいくつかのエラーを持っている:

  • あなたのような警告のあなたの単一引用符をエスケープする必要があります。

    echo 'BootstrapDialog.alert(\'Your Registration was successful\')'; 
    

    またはあなたのような単一引用符と二重引用符の組み合わせを使用することができます:

    echo 'BootstrapDialog.alert("Your Registration was successful")'; 
    
  • あなたもMIG二<link rel="stylesheet" href="your.css">

を使用し、<script src="assets/css/bootstrap-dialog.min.css"></script>;が間違っている、あなたがスクリプトとして、あなたのスタイルシートをロードしている

<link rel="stylesheet" href="/assets/css/bootstrap-dialog.min.css" /> 
<script src="/assets/js/bootstrap-dialog.min.js"></script> 
  • からそのない:HTのようにスラッシュでスクリプトやCSSをロードする必要がありますjavascriptとphpを混在させることをお勧めします。phpからjquery関数を呼び出すことはできません.HTMLだけを生成して実行時に実行することができます。これは動作します:

    if ($student_status == 'paid'){ 
        $str=' <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> 
          <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> 
          <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> 
          <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script> 
          <script type="text/javascript"> 
           setTimeout(function() { 
            BootstrapDialog.alert(\'Your Registration was successful\') 
           },10); 
          </script>'; 
        echo $str; 
        } 
    

    ノートsetTimout()機能、すべてのファイルがロードされていることを確認するために少し時間を与えるために必要とされます。 docsを参照してください:

    • jqueryのAJAXは、PHPの関数学生呼び出す -

      第三正しい方法ではなく、AJAXを使用することです。

    • function studentがtrueまたはfalseを返します。

    • は、Ajaxの成功コールバックでは、あなたのbootstrapDialog.alertあなたが引用符をエスケープするか、二重引用符を使用するか必要があり
  • 0
    echo "BootstrapDialog.alert('Your Registration was successful')" 
    

    追加します。

    0

    このコード

    をお試しください