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

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


请注意 ajax是异步的


attachment应该是个对象吧,键值对那种,至于变成字符串传递,这个jQuery应该都帮你处理好了,不用自己处理吧


attachment = []; 改为 var attachment = {}; 即可.

改之后的运行效果图:

test.php 代码如下:

<?php

var_dump($_POST);

JSON.stringify(要发送的数据)


      $.ajax({
            type : "POST",
            url : 'test.php',
            dataType : 'json',
            data : JSON.stringify({'test':attachment}),
            success:function(data){
                console.log(data);
            }
            
        });
【热门文章】
【热门文章】