通过POST提交UL的最佳方式?

时间:2010-07-20 05:50:10

标签: php jquery

快速提问......

我有一个输入框,在键输入时,将值添加到无序列表中。我如何将这个无序列表传递给jquery帖子?我正在使用form.serialize,所以我不必定义每个变量用于发布。

示例,假设我输入了3个水果,它们会动态添加到表单内的无序列表中。

  

水果:[此处输入文字]

     
      
  • 苹果
  •   
  • 香蕉
  •   
  •   

我正在考虑创建一个隐藏的文本字段,每次用户按下输入时都会填充新值。

还有其他想法吗?

4 个答案:

答案 0 :(得分:16)

<ul>
    <li>Apple<input type='hidden' name='fruits[]' value='Apple'/></li>
    <li>Pear<input type='hidden' name='fruits[]' value='Pear'/></li>
    <li>Banana<input type='hidden' name='fruits[]' value='Banana'/></li>
</ul>

提交后,您将在名为$_POST的{​​{1}}中获得一个包含这些值的数组。

答案 1 :(得分:2)

类似的东西(ul内容的动态构造):

<html>
<head>
    <title>S.O. 3287336</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $('#add').click(function() {
            var li = $('<li></li>').text($('#edit').val());
            $('#ul').append(li);
        });

        $('#addForm').submit(function() {
            var ul = "";

            $('#ul li').each(function() {
                ul += $(this).html() + ";"
            });

            alert("About to submit: " + ul); 
            return false; // don't submit
        });
    });
    </script>
</head>
<body>
<ul id="ul">
</ul>
<form id="addForm">
    <input type="text" name="edit" id="edit" value=""/>
    <input type="button" id="add" value="Add"/>
    <input type="submit" id="submit-btn" value="End"/>
</form>
</body>
</html>

答案 2 :(得分:1)

当你动态地向你的UL添加东西时,你可以添加像

这样的数组名称的隐藏输入
<input type='hidden' name='ul[1]' value='banana'/>
<input type='hidden' name='ul[2]' value='apple'/>
<input type='hidden' name='ul[3]' value='pear'/>

答案 3 :(得分:0)

类似的东西在Python Flask中也可以使用,但是您必须使用request.form.getlist(arg)而不是仅仅“ get”。

在fruits.html中:

<form action='/test' method="post">
    <ul>
        <li>Apple<input type='hidden' name='fruits' value='Apple'/></li>
        <li>Pear<input type='hidden' name='fruits' value='Pear'/></li>
        <li>Banana<input type='hidden' name='fruits' value='Banana'/></li>
    </ul>
    <input type="submit">
</form>

在app.py中:

@app.route('/fruits', methods=['GET', 'POST'])
def get_fruits():
if request.method == 'POST':
    fruits = request.form.getlist("fruits")
    print fruits
return render_template(fruits.html)

这将打印出来:

['Apple', 'Pear', 'Banana']