2017-06-04 15 views
0

ajaxを使ってBootstrapモーダルでページをロードしたい。シナリオは、ボタンをクリックすると、ボタンがフラスコから Flask ajax modal

  • 、データを取得するために、AJAXを呼び出します、それはDBから関連データを取得し、JSON形式でデータを返します
  • 、など

    1. ある
    2. ajaxの成功部分では、モーダルページを動的に生成して表示します。

    私は良い例を見つけることができず、HTMLページを返してもエラーになります。

    私のサンプルコードは

    @app.route('/ajax2') 
    def ajax2(): 
        return app.send_static_file(url_for('static', filename='../templates/ajax2.html')) 
    

    を返します

    <html> 
    <head> 
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
    <link rel="stylesheet" href="../static/css/jquery.modal.min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script> 
    <script src="../static/js/jquery.modal.min.js" type="text/javascript" charset="utf-8"></script> 
    <script type="text/javascript"> 
    // Open modal in AJAX callback 
    $('#manual-ajax').click(function(event) { 
        event.preventDefault(); 
        $.get(this.href, function(html) { 
        $(html).appendTo('body').modal(); 
        }); 
    }); 
    </script> 
    </head> 
    <main> 
    <a href="/ajax2" id="manual-ajax">second example</a> 
    </main> 
    </html> 
    

    とフラスコ部に実行されますが、それは最初からも、404エラーが発生します。助けてください。

  • +0

    私の推薦は、さまざまなコンポーネントとデバッグそれぞれの作品にこれを打破することです。いくつかの素晴らしいモーダルの例[ここ](https://getbootstrap.com/javascript/#modals)。両方の部分は現在間違っています。 404は、リンクが存在しないリソースを要求していることを意味します。これが起こらないように、FlaskのHTMLテンプレート内の任意のリンクの中で 'url_for()'を使うべきです。実際のモーダルをテンプレートに追加する必要があります。ブートストラップはモーダルを作成するためにページにHTMLを挿入するだけではありません。例を参照してください。 – abigperson

    +0

    @PJSantoroまずはあなたのコメントをお寄せいただきありがとうございます。モーダルは、非表示機能では必ずしも実装されていないようです。この例題 "http://jquerymodal.com/"を見ると、動的に外部HTMLページをモーダルとしてロードします。これは私がしたいことです。私の映画リストにはたくさんの映画があり、それぞれのアイテムをクリックするとモーダルがポップアップします。私は、私の場合、各項目を動的にロードする方が効率的になると思います。ありがとう。 –

    +0

    @PJSantoro https://jsfiddle.net/ednon5d1/これは外部HTMLファイルをモーダルに呼び出す別の例です。 –

    答えて

    -1

    あなたが書くことができます:XHR 2を経由してフラスコからの1)の要求HTML)ブートストラップモーダル:$('id_body_modal').html(html); $('id_modal').modal('show');

    +0

    コメントありがとうございますが、外部HTMLファイルをモーダルにロードします。そうではありません.. –