0
$.ajax({
    type :'GET',

    url : geturl(a),
    // type: $(this).attr('method'),
    dataType : 'json',

ビュー.py:

  if request.method=="POST":


        if request.POST.get('monyrsubmit'):

            monthform=MonthForm(request.POST)
            if monthform.is_valid():
                selected_month=monthform.cleaned_data["Month"]
                selected_year=monthform.cleaned_data["Year"]
                print selected_month
                print selected_year  

ajax の type フィールドに GET と POST の両方のリクエストを指定できますか? フォームを使用していて、送信ボタンがクリックされた場合にのみ、送信されたデータに基づいて情報を表示しようとしています。request.POST.get('monyrsubmit') が機能しない場合。助けていただければ幸いです

4

1 に答える 1

0

とても簡単です。イベントを抽象化する必要があります。

function event_page_load() {
   function ajax_request('GET')
}

function click_submit_button() {
   function ajax_request('POST')
}

function ajax_request(type) {

 $.ajax({
    type : type,
    ......
    ......
 })
}

また、次の一般的なガイドラインを考慮することもできます。サーバーへの要求のタイプに基づいて、GET と POST を使用する必要があります。

 - If you are reading the existing data(without modification) from the server, use GET
 - if you are writing/modifying any data in the server, use POST

jQuery では、これらの単純なメソッドを使用できます。

GET リクエストの場合

$.get(  
    url,  
    {param1: "value1", param2: "value2"},  
    function(responseText){  
        // todo ;  
    },  
    "html"  
);  

POST リクエストの場合

$.post(  
    url,  
    {param1: "value1", param2: "value2"},  
    function(responseText){  
        // todo ;  
    },  
    "html"  
);  

ブラウザのキャッシュが無効になっていることを確認してください。

$.ajaxSetup ({  
        cache: false  
    });

django側では、request.is_ajax()メソッドを使用してajax呼び出しを検証し、プロパティに基づいてフィルタリングできrequest.methodます。

https://github.com/sivaa/django-jquery-ajax-exmaplesで、Djano での AJAX のすべての可能な使用法を参照できます。

于 2013-02-19T10:37:22.873 に答える