Как установить значение отдельного выпадающего меню начальной загрузки при повторении по нескольким - PullRequest
0 голосов
/ 09 января 2019

У меня есть четыре выпадающих меню. Я хотел бы установить в каждом меню значение, выбранное для каждого. Тем не менее, мой код устанавливает ВСЕ из раскрывающихся меню в зависимости от того, какое значение выбрано для любого раскрывающегося списка, поэтому все они идентичны. Я хочу, чтобы у каждого меню был свой уникальный выбор. Как я могу это сделать?

В конечном счете, я хотел бы установить значения раскрывающихся списков в качестве переменных, чтобы я мог передать их обратно в свой скрипт Flask / Python и выполнить некоторые вычисления / анализ. Как я смогу сделать это?

Также я замечаю, что моя строка: var x = {{item [1]}}

распечатывает на веб-страницу, как я могу это сделать?

Для справки, пользователь загружает CSV с определенными именами столбцов. Эти значения представляют собой список, установленный для переменной 'cols'. 'col_list' - это четыре идентификатора столбца, для которых я хочу, чтобы пользователь выбрал значения столбца.

Например, col_list может выглядеть следующим образом [(возраст, #age), (рост, #height), (вес, #weight), (пол, #gender)], а в csv есть столбцы ['ft' , «мужчина / женщина», «фунты», «годы»]. Это будет то, что будут отображаться в выпадающих меню.

Затем пользователь выбирает, какие столбцы соответствуют элементу в col_list. например для выпадающего меню, которое говорит «возраст», пользователь выберет «годы» из списка. Как я уже упоминал, я хотел бы установить это значение в качестве переменной для использования в скрипте обработки внутренних данных.

Col_list - это список кортежей, потому что я заметил, что jquery нуждается в переменной id, чтобы иметь хеш перед ней, поэтому второе значение кортежа - это уникальный идентификатор с # перед ним. Я попытался объединить хэштегом «item», используя jinja, чтобы создать уникальный тег id в цикле, но это не сработало. Если вы знаете, как это сделать, это будет полезно.

    <!DOCTYPE html>
    <title>Upload new File</title>
    <h3>Upload new File</h3>
    <html lang="en">
    <head>
      <!-- Required meta tags -->
         <meta charset="utf-8">
         <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

         <!-- Bootstrap CSS -->
         <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">

    </head>
    <body>

    <form method=post enctype=multipart/form-data>
        <input type=file name=file>
        <input type=submit value=Upload>

    {% for item in col_list%}
      var x = {{ item[1] }}
      <div class="dropdown">
        <button class="btn btn-secondary dropdown-toggle" type="button" id=x data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
        {{ item[0] }}
        </button>
        <div class="dropdown-menu" aria-labelledby=x>
          {% for col in cols%}
              <button class="dropdown-item" type="button">
                {{ col }}
              </button>
          {% endfor %}
          </div>
        </div>
    {% endfor %}
    </form>


          <!-- Optional JavaScript -->
          <!-- jQuery first, then Popper.js, then Bootstrap JS -->
          <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
          <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
    </body>
    </html>

    <script type="text/javascript">

    $(function(){
      $(".dropdown-item").click(function(){
      $(x).text($(this).text());
          //$(".btn:first-child").val($(this).text());
       });
    });
    </script>
...