Home  >  Q&A  >  body text

javascript - JS用POST怎么传送二维数组给PHP

有一个二维数组a[2][2],
$.post(url,{?:?},function(jdata){
//code....
});
问号的地方怎么写,还有后台PHP:$a=$_POST[?],要怎么写
不能转成字符串!!

PHP中文网PHP中文网2749 days ago437

reply all(3)I'll reply

  • 大家讲道理

    大家讲道理2017-04-10 14:34:28

    我先上Demo:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>test</title>
        <script src="js/jquery-1.11.1.min.js"></script>
    
    
    <script>
        $(function(){
            var arr = [];
            for (i = 0; i < 10; i ++)
                arr[i] = [];
    
            var k = 0;
            for (i = 0; i < 10; i++)
                for (j = 0; j < 10; j++){
                    arr[i][j] = k;
                    k++;
                }
    
            $.post(
                'post.php', 
                {
                    data : JSON.stringify(arr)
                },
                function(data) {
                    document.write(data);
                }
            );
        })
    </script>
    
    
    </head>
    <body>
    </body>
    </html>
    
    <?php
        $data = $_POST['data'];
        $arr = json_decode($data);
    
        for ($i = 0; $i < 10; $i++){
            for ($j = 0; $j <10; $j++){
                echo $arr[$i][$j].", ";
            }
            echo "<br>";
        }
    
    ?>
    

    解析

    我使用的是JSON

    Javascript端

    数组转字符串:

    JSON.stringify(arr); //返回字符串
    

    字符串转数组:

    JSON.parse(str);  //返回数组
    

    php端:

    字符串转数组:

    json_decode($str);  //返回数组
    

    数组转字符串:

    json_encode($arr);  //返回字符串
    

    虽然我不明白你为什么不能转成字符串,不知道使用JSON算不算是你说的“使用字符串”。
    但希望能够帮助到您!

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 14:34:28

    $.post(url,{"xx[0]":1,"xx[1]":2},function(){
    
    });
    

    xx个数不确定的可以这样

    $.post(url,{"xx[]":1,"xx[]":2},function(){
    
    });
    

    和表单提交一个道理
    jQuery最终还是会把它转成字符串

    参观

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:34:28

    {
      'param_0_0': a[0][0],
      'param_0_1': a[0][1],
      'param_1_0': a[1][0],
      'param_1_1': a[1][1]
    }
    

    post是不能传二维的东西的,最后必须把它捋平了。再者说a[2][2]四个元素也不多对吧。

    突然想起来还有一个方法,用JSON.stringtifya转化成字符串,再urlencode传过去。

    reply
    0
  • Cancelreply