开发者社区> 问答> 正文

jquery $.ajax如果传递数组到后端?

前端代码:

<html>
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css">
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>

    <div class="row">
                              <div class="span8">
                                  <ol id="attachment">
                                    <li><a href="123">123+++</a></li>
                                    <li><a href="456">456+++</a></li>
                                    <li><a href="789">789+++</a></li>
                                </ol>
                              </div>
                            </div>
<button class="btn btn-default" type="submit">Button</button>

<script type="text/javascript">


    $("button[type='submit']").click(function(){
         attachment = [];
        $("#attachment li a").each(function(key,value){
                attachment[value.text]=value.href;
        
        });
        console.log(attachment);
        $.ajax({
                type : "POST",
                url : 'test.php',
                data : {'test':attachment},
                success:function(data){
                    console.log(data);
                }
                
            });

    });
            
</script>
</body>
</html>

大概意思就是,获取ol.li.a的超链接内容
获取到之后,想把他加入到一个数组里面,有键值的那种。
console.log(attachment); 的时候也看到是个数组了,
但是我通过$.ajax传值过去不行了。
后端获取不到post的值。
还是我理解错了,attachment是个对象?搞晕了。
主要是2点:
1,我要把获取超链接的内容和href放到一个数组里面,有键值名的那种例如:a['cn']='ak'
2,传值我看了手册说,如果要传值数组过去,需要加个参数,traditional: true,
我也加了,但是不行,请各位帮帮忙。Ths

展开
收起
小旋风柴进 2016-05-30 09:35:31 2387 0
1 条回答
写回答
取消 提交回答
  • attachment = []; 改为 var attachment = {}; 即可.
    screenshot
    改之后的运行效果图:

    screenshot
    test.php 代码如下:

    2019-07-17 19:19:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
十分钟上线-使用函数计算构建支付宝小程序服务 立即下载
机器学习在互联网后端技术中的应用 立即下载
探究 Node.js 的服务端之路 立即下载