2014-05-13 134 views
0

我正在开发一个项目,在该项目中,用户在访问网址时显示餐馆的默认列表(其余为objs)。如果用户选择使用HTML5 geoloc功能提交他们的位置,我想更新结果列表以使其按照用户位置的接近度进行排序。烧瓶:使用客户端数据更新模板

初始模板呈现成功,我可以获取数据回服务器 - 我只是不能重新呈现模板。当我在开发控制台中预览对我的客户端帖子的响应时,数据会更新,但是当我进入页面时没有任何更改。

我知道我可能犯了一个愚蠢的错误,我只是不知道它是什么。

这是我的观点:

def home(): 
    if request.method == 'POST': 
     lat = request.form.get('lat','') 
     lng = request.form.get('lng','') 
     query = loc_query(lat,lng,10,0,20) 
     rests = Rest.query.from_statement(query).all() 
     return render_template('main.html',rests = rests) 
    else: 
     rests = getLatest(5)#Get 5 random rest objects 
     return render_template('main.html',rests = rests) 

这里是我的客户端脚本:

<script type="text/javascript"> 
    function sendloco (loc) { 

     $.post('/latest',{lat:loc.coords.latitude,lng:loc.coords.longitude}, 
      function(data){ 
       $('#restlist').html(data); 
      });     
    }; 

    navigator.geolocation.getCurrentPosition(sendloco); 
</script> 

这里是我的模板的相关部分:

<div class="col-lg-12" id="restlist"> 

     {% for rest in rests %} 
      <h2><b><a href="{{ url_for('profile',id=rest.id)}}">{{ rest.name }}</a></b></h2> 
      <h3>Date:{{ rest.latestDt() }}</h3> 
      <h3>{{ rest.street }}</h3> 
     {% endfor %} 
    </div> 

Thansk FO的帮帮我!

回答

0

看起来像你打电话$('.restlist').html(data)但在HTML你的div有id="restlist"不上课。也许试试$('#restlist').html(data)

+0

嘿,谢谢@ jsm1th是好赶上(代码更新)。我仍然有同样的问题。 – user2957824

+0

@ user2957824你可能没有完整的代码可用吗? – jsm1th