大家好
我在PHP服务器端$this->ajaxReturn 了一个二维数组可是我在客户端访问data[0][0]的时候
为什么没有值?

解决方案 »

  1.   

    js怎么能解析php的数组呢?
    你需要转换成js能够接受的格式
      

  2.   

    用eval将结果转换为Js对象,再处理。或请求时说明返回数据类型‘Jdon’再处理,比较方便。
      

  3.   

    客户端是js在取你的返回值
    你需要将你返回的东西 整理成一个js的数组格式
    或者你php json一下 js找个json包 反json一下
      

  4.   

    php5.2以上可以,其他的可以去下个json包去
    你应该返回一个json_encode($this->ajaxReturn)字符串给js,js可以直接解析为数组..
      

  5.   

    你先要确认一下客户端确实收到了相应数据,还有就是二维数组需要转为JSON数据再输出,客户端取到的是JSON字符串,还需要eval一下才能作为数组使用。
      

  6.   

    我的二维数组大致是这样:
    Array ( 
    [0] => Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )  
    [1] => Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 13 ) 
    [2] => Array ( [0] => 20 [1] => 21 [2] => 22 [3] => 23 ) 
    )请问我在php端json_encode后,javascript中怎么处理才能取到我想要的data[0][0]的值?
      

  7.   

    测试代码
    $ar = array(
    array(1,2,3),
    array(11,12,13),
    array(21,22,23)
    );
    $s = json_encode($ar);echo <<< JS
    <script>
    b = $s; //直接写入
    ar = eval('$s'); //通过字符串传递
    alert(b[2][1]);
    alert(ar[2][1]);
    </script>
    JS;
      

  8.   

    给你个示例:<?php
    if (!empty($_GET['ajax'])) {
    $arr = array(array(0,1,2,3),array(10,11,12,13),array(20,21,22,23));
    echo json_encode($arr);
    exit;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title> new document </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="editplus" />
    <meta name="author" content="JnKc" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <style type="text/css">
    *{font-size:12px;}
    </style>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    </head>
    <body>
    <script type="text/javascript">
    $.getJSON('?ajax=true',{},function(data){alert('data[1][2]='+data[1][2]);});
    $.get('?ajax=true',{},function(data){eval('data='+data);alert('data[1][3]='+data[1][3]);});
    </script>
    </body>
    </html>
      

  9.   

    我用了最笨的方法,将数组的值用特殊字符连接成一个字符串,用js的split函数拆分
      

  10.   

    严格的说如果不用 xml 就不能叫 ajax 了
    AJAX   Asynchronous JavaScript and XML(异步JavaScript和XML)比如用 JSON 就该叫
    AJAJ   Asynchronous JavaScript and JSON