Estoy usando Flask con plantillas Jinja2, ¿cómo puedo recuperar el valor de un cuadro de selección usando Jinja2 o usando Java script + la variable Jinja2 y usarlo?
Lado de pitón:
@app.route('/') def dependent(): fruits= {'apple':100,'orange':80,'mango':200} return render_template('select.html',fruits=fruits)Lado 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 recuperar el valor seleccionado y usarlo. Sé que la etiqueta final '< p>' es incorrecta. ¿Cómo hacer esto correctamente?
PD: soy completamente ignorante con respecto a JS, jQuery y Ajax
<script> var selectTag = document.getElementById('fruit') var pTag = document.getElementById('fruit-binding') function val() { pTag.innerText = fruits[selectTag.value]; </script>Podrías intentar algo como esto usando javascript. Una forma de hacerlo es agregar el precio de la fruta como el valor de la etiqueta de opción y usar javascript para mostrar este valor del elemento seleccionado en la etiqueta p.
<form> <select onchange="val()" name="fruit" id="fruit"> {% for fruit in fruits %} <option value="{{ fruits[fruit] }}">{{ fruit }}</option> {% endfor %} </select> <p id="fruit-binding"></p> </form> <script> var selectTag = document.getElementById('fruit') var pTag = document.getElementById('fruit-binding') pTag.innerText = selectTag.value function val() { pTag.innerText = selectTag.value } </script>