0

Ajax の投稿が成功した後、ハンドラーで POST に関連付けられたテンプレートを JQuery の .load() メソッドでレンダリングしたいと考えています。POST が成功した後も GET リクエストが呼び出され続けるため、POST に関連付けられたテンプレートではなく、GET に関連付けられたテンプレートがレンダリングされます。あなたが与えることができるヒントをありがとう。

Javascript:

$(function() {  
    $(".topic_submit").click(function() {  
    var topic = $("#topic").val();
    refresh = 'false'
        $.ajax({  
            type: "POST",  
            url: "/mentorlist",  
            data: {'topic': topic},  
            success: function(dataString) {  
                $('#mentor_list').load('/mentorlist');
                console.log('**mentor_list div updated via ajax.**'); 
            }  
        });  
        return true;  
    });  
}); 

HTML フォーム:

<form id="topic_search_form"  name="topic_search_form" action="">
 Topic:  <input id ="topic" type="text" name="topic" size="60" placeholder="Search by Keyword" />
<input type="submit" class="topic_submit" name="topic_submit" value="Search" >

4

3 に答える 3

2

追加データなしでそのように呼び出す.load()と、実際には の単純化されたバージョンを呼び出しているだけです.get()。投稿から返されたデータを使用しようとしている場合は、次のことを行う必要があります

    $.ajax({  
        type: "POST",  
        url: "/mentorlist",  
        data: {'topic': topic},  
        success: function(dataString) {  
            $('#mentor_list').html(dataString);
            console.log('**mentor_list div updated via ajax.**'); 
        }  
    });  
于 2013-10-01T22:11:46.997 に答える
0

応答データを にロードするために 2 つの後続の要求は必要ありません。1回#mentor_list呼び出すだけで、次のようload()に make を使用できます。POST

$(".topic_submit").click(function()
{
    var topic = $("#topic").val();
    refresh = 'false';

    $('#mentor_list').load('/mentorlist', { topic: topic });
});
于 2013-10-01T22:11:28.823 に答える