Когда я получить доступ к моей странице корня, моя колба генерирует шаблон базы дзиндзя, которая содержит элементы:Передача переменные из Колбы обратно в Ajax
<div><span id="var_1">{{ var1|safe }}</span></div>
<div><span id="var_2">{{ var2|safe }}</span></div>
<div><span id="var_3">{{ var3|safe }}</span></div>
В этом шаблоне у меня есть выпадающее меню, которые с помощью Ajax сообщения их значения, а затем Я извлекаю их из фляжки, чтобы выполнить некоторые вычисления.
function submitValues(val) {
var entry1 = $('#dropdown1').val();
$.ajax({
type: "POST",
url: "/getData",
data: {entry2_id: val, entry1_id: entry1},
success: function(data){
}
});
}
После того, как я закончу с расчетами, как я могу передать переменные назад AJAX для обновления 3 элемента в базовом шаблоне с новым «вычисленных» переменных?
В колбу:
@app.route("/getData", methods=['POST'])
def getData():
entry2Value = request.form['entry2_id']
entry1Value = request.form['entry1_id']
#### DO CALCULATIONS HERE WHICH GENERATES 3 NEW VALUES
#### newVal1, newVal2, newVal3
#### change var1, var2, var3 from the original template to these new vals
return ??
Я попытался вспомнить базовый шаблон с новыми значениями в пределах АЯКС называется функцией опоки, но это не обновляет HTML. Значения получены из ajax в функцию просто отлично, но мои проблемы состоят в том, как «повторно отправить» эти значения в базовый шаблон или даже перерисовать шаблон с нуля.
Могу ли я назвать «вычисление» функции опоки с помощью ГЭТ() в «успехе» Аякса как так:
function submitValues(val) {
var entry1 = $('#dropdown1').val();
$.ajax({
type: "POST",
url: "/getData",
data: {entry2_id: val, entry1_id: entry1},
success: function(data){
$.get("/getData", function(newvar1, newvar2, newvar3)){
}
}
});
}
, а затем заменить элемент по идентификатору с новыми переменными?
Спасибо!
Спасибо Мэтту! Я получаю TypeError (объект 'dict' не может быть вызван). Нужно ли jsonify данные? И если я использую getJSON вместо ajax, я получаю ошибку 404 [object% 20object] hmm – dter
@dter: Да, используйте 'jsonify()'. См. Документацию Flask о том, как [взаимодействовать с jQuery] (http://flask.pocoo.org/docs/0.10/patterns/jquery/). – mhawke
Если у меня есть ' {{variable_here}}' '$ (" # varID "). Html (data.var1);' сможет изменять содержимое переменной_here на var1, элемент «джиньи»? – dter