我在web2py应用程序中创建了搜索栏功能,从数据库中获取结果。但是,如果数据库的内容在页面启动时发生更改,则需要重新加载以反映不同的内容。 我的问题是,我可以通过ajax或json或somesuch将数据库的内容读入javascript变量而无需重新加载页面。如何从服务器获取更新的数据而无需重新加载web2py中的页面
目前我使用这样的控制器:
def testDB():
valA=[]
valB=[]
valC=[]
for x in db().select(db.products.ALL):
valA.append(x.prdA)
valB.append(x.prdB)
valC.append(x.prdC)
return dict(VA=valA, VB=valB, VC=valC)
随着获取数据,像这样一个观点:
{{valA=VA}} {{valB=VB}} {{valC=VC}}
A = {{=XML(response.json(valA))}}
B = {{=XML(response.json(valB))}}
C = {{=XML(response.json(valC))}}
使用的变量。这可以很好地使用加载页面时的数据,但不会刷新以适应对数据库的更改。为了获取新的数据,我想:
function loadFromDB(){
jQuery.ajax({
type:"POST",
url:'testDB',
success: function(msg){
{{
valA=VA
valB=VB
valC=VC
}}
A = {{=XML(response.json(valA))}}
B = {{=XML(response.json(valB))}}
C = {{=XML(response.json(valC))}}
},
error: function(errormessage){alert("Error in retrieving from database");}
});}
但这似乎使用旧的VA/B/C的变量,因为它没有反映到数据库中的任何改变。我尝试了其他一些方法,例如A = VA,在{{}} breackets之外,但尚未找到工作的方法。我应该如何检索python函数返回到JavaScript的数据?
感谢
2011-10-28
James