在下一页中进行AJAX调用

时间:2014-03-24 17:08:59

标签: jquery ajax json

我的方案如下:

在主页上,我有一个搜索框,当用户输入查询并点击搜索按钮时,表单将被提交并打开新页面,搜索查询将作为该新页面的参数,要求是我必须在新打开的页面中根据URL中的查询参数进行AJAX调用,但问题是这样当打开新页面时,它会刷新并且不返回数据,我试过了"返回false"但这只会在同一页面上起作用。

如何传递数据,以便在打开新页面时,它应该进行AJAX调用。

以下是我写的代码:

$(document).ready(function(){

       var queryString = new Array();

            if (queryString.length == 0) {
                if (window.location.search.split('?').length > 1) {
                    var params = window.location.search.split('?')[1].split('&');
                    for (var i = 0; i < params.length; i++) {
                        var key = params[i].split('=')[0];
                        var value = decodeURIComponent(params[i].split('=')[1]);
                        queryString[key] = value;
                                                            }
                                                                    }
                                        }
            if (queryString["q"] != null) {
                var searchQuery =  "<b>Search Results for:</b> " + queryString["q"] + "<br><br>";
                $("#lblData").html(searchQuery);
            }


            $('#search-button').click(function(){

        var queryValue =  queryString["q"];

              $('#search_results').hide();

                $.getJSON( "${kb_endpoint_url}", { search_query : queryValue } )
                .done(function( data ) {


                      console.log("success");

                      for (var i = 0, len = data.response.docs.length; i < len; i++) {

                        var title = data.response.docs[i].title;
                        var summary = data.response.docs[i].sectionid;


                      $('#search_results').html('<a href="'#'">'+title +'::'+ summary+'</a>');    }
                    })
                    .done(function() {
                        console.log("second success"); 
                        })
                    .fail(function() {
                        console.log("error"); 
                    })
                    .always(function() {
                        console.log("finished");

                    $('#search_results').show();

                    });                   
                        return false;
                });




        });

0 个答案:

没有答案