2016-10-18 10 views
0

Djangoでは、view.pyに値を渡してから現在のページをリロードすることなく、ページ上のボタンをクリックする方法は?私は、HTML内のボタンがあります。Djangoでは、ボタンをクリックしてビューを呼び出してからページをリロードする方法

<button type="button" class="btn btn-primary" id="refresh">refresh page</button> 

私は、新しいHTMLが返されるには、view.pyでビューを呼び出したい:

@csrf_exempt 
def topology_show_refresh(request): 
    '''topology refresh''' 
    plan = {...} 
    ... 
    return render(request, 'topology_show.html', {'plan': plan}) 

​​辞書は新しいに使用されますページ。私のように

{% if plan.try == 'first' %} 
     <script type="text/javascript"> 
      var max_lane_num = {{plan.max_lane_num}}; 
      var flag = 0; 
     </script> 
    {% else %} 
     <script type="text/javascript"> 
      var max_lane_num = {{plan.lane_second}}; 
      var flag = 1; 
     </script> 
    {% endif %} 

、例えば、HTMLに​​を渡し、私はこのビューにジャンプするAJAXを使用しますが、私はリターンを処理する方法は考えています。

あなたが代わりにページをリロードするタスク、 使う 'location.reload(真)' に非常に近い
$(function(){ 
    $("#refresh").click(function(event){ 
     url = 'refresh/'; 
     $.post(url, {}, function(ret){ 
      //do something 
      //how to pass "plan" dictionary to HTML 
     }); 
    }); 
}); 

答えて

1

'(window.location.reload);'

そして、success()関数で応答データを処理します。 これを試してみてください:

$(function(){ 
     $("#refresh").click(function(event){ 
      $.ajax({ 
      type: "POST", 
      url: 'refresh/', 
       success:function(response) { 
       location.reload(true); 

       //do something with 'response' 
      } 
      }); 
    }); 
+0

こんにちは、Prakhar、私はあなたがページをリロードし、ビューに移動し、なぜあなたはJavaScriptを使用している必要がある場合は、AJAXのHTML – vinllen

+2

@vinllenに 'plan'辞書を渡す方法の問題を編集しました。それは簡単に追加することによって行うことができます tag to the button. –

関連する問題