Javascript Flask:使用客户端数据更新模板
我正在做一个项目,在这个项目中,当用户访问url时,会显示一个默认的餐厅列表(rest OBJ)。如果用户选择使用HTML5 geoloc功能提交他们的位置,我想更新结果列表,使其按用户位置的接近程度排序 初始模板渲染成功,我可以将数据返回到服务器-我无法重新渲染模板。当我在开发控制台中预览对我的客户机帖子的响应时,数据会更新,但当我转到页面时,没有任何更改 我知道我可能犯了一个愚蠢的明显错误,我只是不知道那是什么 以下是我的看法:Javascript Flask:使用客户端数据更新模板,javascript,jquery,geolocation,flask,Javascript,Jquery,Geolocation,Flask,我正在做一个项目,在这个项目中,当用户访问url时,会显示一个默认的餐厅列表(rest OBJ)。如果用户选择使用HTML5 geoloc功能提交他们的位置,我想更新结果列表,使其按用户位置的接近程度排序 初始模板渲染成功,我可以将数据返回到服务器-我无法重新渲染模板。当我在开发控制台中预览对我的客户机帖子的响应时,数据会更新,但当我转到页面时,没有任何更改 我知道我可能犯了一个愚蠢的明显错误,我只是不知道那是什么 以下是我的看法: def home(): if request.meth
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>
函数sendloco(loc){
$.post('/latest',{lat:loc.coords.latitude,lng:loc.coords.longitude},
功能(数据){
$('#restlist').html(数据);
});
};
navigator.geolocation.getCurrentPosition(sendloco);
以下是我的模板的相关部分:
<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>
{rest%中的rest为%1}
日期:{{rest.latestDt()}}
{{rest.street}
{%endfor%}
谢谢你的帮助 看起来您正在调用
$('.restlist').html(数据)
,但在html中,您的div没有类。也许可以尝试$('#restlist').html(数据)
嘿,谢谢@jsm1th是的,很好的捕获(代码更新)。我仍然有同样的问题。@user2957824您在git上没有完整的代码,是吗?