Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从flask中的输入框和复选框值中提取列表列表_Python_Html_Flask - Fatal编程技术网

Python 从flask中的输入框和复选框值中提取列表列表

Python 从flask中的输入框和复选框值中提取列表列表,python,html,flask,Python,Html,Flask,这是我的index.html <!DOCTYPE html> <script> function add_field() { var total_text=document.getElementsByClassName("input_text"); total_text=total_text.length+1; field_div = document.getElementById("field_div"); new_input =

这是我的
index.html

<!DOCTYPE html>
<script>
  function add_field()
  {
    var total_text=document.getElementsByClassName("input_text");
    total_text=total_text.length+1;
    field_div = document.getElementById("field_div");
    new_input = "<li id='input_text"+total_text+
    "_wrapper'><input type='text' class='input_text' name='input_text[]' id='input_text"+
    total_text+"' placeholder='Enter Text'>"+
    "<label><input name='input_text"+total_text+"' id='input_text[]' type='radio' value='1'>1</label>"+
    "<label><input name='input_text"+total_text+"' type='radio' id='input_text[]' value='2'>2</label>"+
    "</li>";
    field_div.insertAdjacentHTML('beforeend',new_input);
  }
  function remove_field()
  {
    var total_text=document.getElementsByClassName("input_text");
    document.getElementById("input_text"+total_text.length+"_wrapper").remove();
  }
</script>
{% extends "bootstrap/base.html" %}
{% block content %}

<div class = "container">
  <h1>Give the words</h1>
  <form action='/results' method="post">
    <div id="wrapper">
      <input type="button" value="Add TextBox" onclick="add_field();">
      <input type="button" value="Remove TextBox" onclick="remove_field();">
      <ol id="field_div">

      </ol>
    </div>
    <input type='submit' value='Select'>
  </form>
</div>
{% endblock %}
现在,我可以从所有输入文本中提取输入作为列表? 如何将每个
  • 中的值作为列表获取,从而创建列表列表

    例如,, 如果我打字

    a 1
    b 2
    

    我应该能够将结果提取为[[a,1],[b,2]]

    可能不是您希望的结果,但如果您的结果列表足够小,这可能会起到作用

    #assuming your result list is ll
    
    alplhabet = list(string.ascii_lowercase)
    
    if len(ll)<=len(alplhabet):
        res = []
        for i in map(None,alplhabet[:len(ll)],ll):
            res.append(list(i))
        return res
    
    #假设您的结果列表为ll
    alplhabet=list(string.ascii_小写)
    
    如果len(ll)我们应该操作checkbox的
    属性

    为每个文本框添加了复选框

    app.py

    from flask import Flask, render_template, url_for, request
    
    app = Flask(__name__)
    
    @app.route('/')
    def search():
        return render_template('dynamic_input.html')
    
    @app.route('/results', methods = ['GET', 'POST'])
    def results():
        if request.method == 'GET':
            return redirect(url_for('search'))
        else:
            input_values = request.form.getlist('input_text[]')
            checkbox_values = request.form.getlist('input_checkbox')
            return render_template('dynamic_input_results.html',
                                   input_values = input_values,
                                   checkbox_values = checkbox_values)
    
    if __name__ == '__main__':
        app.run(debug = True)
    
    动态输入.html

    <!DOCTYPE html>
    <script>
      function add_field()
      {
        var total_text=document.getElementsByClassName("input_text");
        total_text=total_text.length+1;
        field_div = document.getElementById("field_div");
        new_input = "<li id='input_text"+total_text+"_wrapper'>";
        new_input += "<input type='text' class='input_text' name='input_text[]' id='input_text"+
        total_text+"' placeholder='Enter Text'>";
        new_input += "<input type='checkbox' name='input_checkbox' value='"+total_text+"' id='input_checkbox"+
        total_text+"'";
        new_input += "</li>";
        field_div.insertAdjacentHTML('beforeend',new_input);
      }
      function remove_field()
      {
        var total_text=document.getElementsByClassName("input_text");
        document.getElementById("input_text"+total_text.length+"_wrapper").remove();     
      }
    </script>
    
    <div class = "container">
      <h1>Give the words</h1>
      <form action='/results' method="post">
        <div id="wrapper">
          <input type="button" value="Add TextBox" onclick="add_field();">
          <input type="button" value="Remove TextBox" onclick="remove_field();">
          <ol id="field_div">
    
          </ol>
        </div>
        <input type='submit' value='Select'>
      </form>
    </div>
    
    <ul>
    {% for value in input_values %}
        <li>{{value}}</li>
    {% endfor %}
    <hr>
    {% for value in checkbox_values %}
        <li>{{value}}</li>
    {% endfor %}
    
    </ul>
    
    输出:


    对不起,这与烧瓶有什么关系对不起,我的错,我不知道你在专门寻找烧瓶溶液!如果没有帮助,我将删除我的答案。如果没有提供值,我是否可以返回空答案?这将很棘手,因为这不是
    复选框的目的。但是您可以通过从1迭代到文本框列表长度来操纵复选框值。谢谢。我可以使用其他方法吗?以下是一篇基于您的场景的博客文章:。希望能有帮助。
    
    <ul>
    {% for value in input_values %}
        <li>{{value}}</li>
    {% endfor %}
    <hr>
    {% for value in checkbox_values %}
        <li>{{value}}</li>
    {% endfor %}
    
    </ul>