相关疑难解决方法(0)

表单输入字段名称包含方括号,如字段[index]

我已经看到很多PHP代码处理表单输入,其中输入字段名称包含方括号.据我所知,当PHP脚本检查$ _POST变量时,这会以某种方式导致PHP数组.

示例HTML:

<form action='http://zzz.com' method='post'>
    <input name='fruit[1]' value='apple' />
    <input name='fruit[2]' value='banana' />
</form>
Run Code Online (Sandbox Code Playgroud)

示例网址:

http://zzz.com?fruit[1]=apple&fruit[2]=banana
Run Code Online (Sandbox Code Playgroud)

示例PHP:

assert($_POST['fruit'] === array(1=>'apple', 2=>'banana'));
Run Code Online (Sandbox Code Playgroud)

我对此有疑问:

  • 它背后的机制是什么?这些包含括号的名称在什么时候被转换为数组?这是HTTP协议的一个特性吗?网络服务器?PHP语言?

  • 继续上一个问题,这是一个常用的黑客还是普通的编程工具?

  • 在输入字段名称中使用括号的规则是什么(全部)?

  • 可以用这种方式创建多维数组吗?

php forms

20
推荐指数
2
解决办法
1万
查看次数

将数组从ajax发送到Flask无法正常工作

我正在尝试通过ajax调用将数组发送到flask。但是它不起作用。

Java脚本

<script type="text/javascript">
        function fillChart()
        {

            var nids = document.getElementById("nodes-select").value;
            var cfilter = document.getElementById("filter-select").value;
            var chkd = document.getElementById("further-select");
            var cids = [];
            for (var i=0;i<chkd.length;i++)
            {

                if(chkd[i].selected)
                {
                    cids.push(chkd[i].value);
                }
            }

            alert(cids);
            $.post("/pie",{"node_id":nids,"col_select":cfilter,"col_filter":cids},function(data,status)
            {
                var tmp = data;            
                console.log(data.otstr);                     

            });           
        }
 </script>
Run Code Online (Sandbox Code Playgroud)

服务器代码

@app.route('/pie',methods=['POST'])
def pie():
    tmp1 = request.form.get('node_id')  
    tmp2 = request.form.get('col_select')   
    tmp3 = request.form.get('col_filter[]') 
    return jsonify(otstr=[tmp1,tmp2,tmp3])
Run Code Online (Sandbox Code Playgroud)

这里tmp1和tmp2只是字符串,而tmp3是字符串数组.console.log(data.otstr)打印正确的tmp1,tmp2值,但是当涉及到tmp3时,因为它是一个数组,所以它仅打印第一个元素。

javascript python ajax json flask

4
推荐指数
1
解决办法
2449
查看次数

标签 统计

ajax ×1

flask ×1

forms ×1

javascript ×1

json ×1

php ×1

python ×1