我正在开展一个项目,在该项目中,用户在访问网址时会看到默认的餐馆列表(休息对象)。如果用户选择使用HTML5地理位置功能提交其位置,我想更新结果列表,使其按邻近用户的位置进行排序。
初始模板成功渲染,我可以将数据恢复到服务器 - 我只是无法重新渲染模板。当我在开发控制台中预览对客户端帖子的响应时,数据会更新,但是当我转到页面时,没有任何更改。
我知道我可能犯了一个愚蠢明显的错误,我只是不知道它是什么。
以下是我的观点:
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的帮助!
答案 0 :(得分:0)
看起来你正在调用$('.restlist').html(data)
但是在html中你的div有id="restlist"
没有上课。也许试试$('#restlist').html(data)
。