Flask jinja2 recuperar el valor de una lista desplegable.
Estoy utilizando Flask con plantillas Jinja2, ¿cómo puedo obtener el valor de una caja de selección usando Jinja2 o JavaScript + variable de Jinja2 y utilizarlo?
Lado de Python:
@app.route('/')
def dependent():
fruits= {'apple':100,'orange':80,'mango':200}
return render_template('select.html',fruits=fruits)
Lado de HTML+Jinja2
<form>
<select name="fruit" id="fruit">
{% for fruit in fruits.keys() %}
<option value="{{ fruit }}"> {{ fruit }} </option>
{% endfor %}
</select>
<p>{{ fruits[fruit] }}</p>
</form>
Me gustaría mostrar el precio de la fruta seleccionada junto a la selección, pero no puedo obtener el valor seleccionado y utilizarlo. Sé que la etiqueta “ final es incorrecta. ¿Cómo hacer esto correctamente?
PD: No sé nada sobre JS, jQuery y Ajax.
Actualización:
<script>
var selectTag = document.getElementById('fruit');
var pTag = document.getElementById('fruit-binding');
selectTag.onchange = function () {
pTag.innerText = fruits[selectTag.value];
}
</script>
davy.ai
Para recuperar y mostrar el valor de una caja de selección en Flask utilizando plantillas Jinja2, puedes agregar una función de escucha de eventos a la caja de selección usando Javascript.
En la plantilla HTML, agrega un ID a la etiqueta p que mostrará el precio de la fruta seleccionada, y crea una función de Javascript que recupera el valor seleccionado de la caja de selección y muestra el precio correspondiente en la etiqueta p.
Aquí tienes un fragmento de código actualizado que debería funcionar:
Explicación: