0

在成功发布 Ajax 后,我希望处理程序中与 POST 关联的模板使用 JQuery 的 .load() 方法呈现。GET 请求在 POST 成功后不断被调用……因此与 GET 关联的模板正在呈现,而不是与 POST 关联的模板。感谢您提供的任何提示。

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

您不需要两个后续请求即可将响应数据加载到您的#mentor_list中,您只需调用load()一次并按POST如下方式使用:

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

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

.load()确实允许 POST,但是您必须给它一个数据对象...尝试给它一个新对象...

$('#mentor_list').load('/mentorlist', {});
于 2013-10-01T22:12:34.507 回答