在AJAX发布后显示结果HTML页面

时间:2016-11-04 18:03:43

标签: javascript ajax post html-rendering

   <form onsubmit="geoFindLat()" name="search-form">
        <div class="input-group form-group form-group-lg">
          <input type="text" name="search" class="form-control col-lg-6" placeholder="Search Books" id="q">
          <span class="input-group-btn"><button class="btn btn-primary btn-lg" type="submit" ><i class="fa fa-search"></i></button>
        </span>
       </div>
   </form>

我有上面的html表单search.html。当用户输入文本并按Enter键时,将调用javascript函数,然后获取lat / lng和搜索文本。

function geoFindLat() {
    var input = document.forms["search-form"]["search"].value;

    function success(position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        $.ajax({
            type: "POST",
            url: "/search",
            data: {
                latitude: latitude,
                longitude: longitude,
                q: input
            },
            error: function () {
            },
            success: function (response) {
            },
            complete: function () {
            }

        })
      };

    navigator.geolocation.getCurrentPosition(success, error);
    }

成功后,将调用POST方法,该方法检索lat,lng和query_name值并将其打印出来。我希望将页面重定向到results.html,但这并不会发生。 search.html页面似乎一直都在重新加载。

class Search(SearchRequestHandler):
    def get(self):
        self.redirect('/')

    def post(self):
        query_name = self.request.get('q')
        lat = self.request.get('latitude')
        lng = self.request.get('longitude')
        print query_name, lat,lng
        doc = //** SOME OPERATION 
        tpl_values = {
           'lat': lat,
           'lng': lng,
           'doc': doc
        }

         self.render('search_result/results.html', **tpl_values)

请帮忙。

0 个答案:

没有答案