Делаю выборку из БД из двух таблиц.
Эта выборка отображается на странице в виде списка.
Отображается только первый столбец(из первой таблицы)
Далее надо выбрать из списка значение и в зависимости от выбранного значения, в
другом окошке должно отобразиться соответствующее значение из второго столбца.
Первая таблица: TableA (id, X) , Вторая таблица: TableB(id, Y)
Собственно код на выборку и переход на страницу html
view.py
@app3.route('/page1',methods=['GET','POST']) def page1(): res = db.session.query(TableA,TableB).join(TableA, TableA.id == TableB.id) res = res.all() #Далее этот результат надо преобразовать в JSON и передать в html. #Пока с этим не разобрался. Т.к. там надо какие-то функции при описании и таблиц прописывать. #Допустим при помощи перебора сделал словарь: d = [{'X':'10,'Y':red},{'X':'20,'Y':blue},{'X':'30,'Y':green}] #далее resD = dumps(d) #И передаю переменную return render_template('page1.html', res=res, resD=resD)
page1.html
<div id="intro" class="input-container"> <table> <tr> <td> <select id = code name="code"> {% for p in res %} <option value="{{p[0].X}}">{{p[0].X}}</option> {% endfor %} </select> </td> </tr> </table> </div> <p id=out>Суда надо Подставить значение из второй таблицы</p> <!-- Здесь использую jQuery как отдельный файл. Передаю JSON объект resD в скрипт. !--> <script id="script1" data-pass_data={{resD}} type=text/javascript src="{{url_for('app3.static', filename='js/main.js') }}"></script>
И сам скрипт:
main.jsp
Здесь выбираю эту переданную переменную для дальнейшей обработки r = $(script1).data("pass_data"); А дальше затык. Не понимаю как ее распарсить на части. Делаю так points = $.JSON.parse(r|safe) Но это не работает. Можете подсказать как это правильно разбить на части $( "select#code" ) .change(function () { var str = ""; var ind = 0; $( "select option:selected" ).each(function() { x = $( this ).text() ; ind = $(this).index(); }); Это подстановка в из второго столбца $("#out").text(points[ind].Y) }).change();