Я сделал функцию панели поиска в приложении web2py, получая результаты из базы данных.Однако, если содержимое базы данных изменяется, когда страница открыта, ее необходимо перезагрузить, чтобы отразить другое содержимое.Мой вопрос заключается в том, как я могу читать содержимое базы данных в переменные javascript без перезагрузки страницы, через ajax или json или что-то подобное.
В настоящее время я использую такой контроллер:
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, за пределами {{}} трещин, но пока не нашел работающего.Как мне получить данные, которые функция python возвращает в javascript?
Спасибо