{"status":1,"info":["201209\/20120905rmyr8iZMs6.jpeg","201209\/20120905b1i8bI1C9x.jpeg","201209\/20120905Z0zFDjUF61.jpeg","201209\/20120905144fN9oLlz.jpeg"],"data":""}
这是返回的数据,info里面是一个数组,我想用js特效翻图片,我怎么获取图片的下表并判断有没有上一张或下一张图片

解决方案 »

  1.   

    你是要把json格式解析成数组的意思吗?
      

  2.   

    json直接赋值给js变量上去,再判断?
      

  3.   

    我的理解是,可以先把json数据解析成数组,然后就能得到info的数据,按照上面的格式,下标应该是数字递增的,从0开始,可以得到info数组的长度,也就能得到最后一张图片的下标了,这样是否可以判断?至于json数据解析数组,可以去网上查下,封装的库很多,常见的可以下个json.js的库(www.json.org),然后用string.parseJSON()转化。
    其实像你说的这种效果,网上应该有很多示例的,可以查下~
      

  4.   


    var str='{"status":1,"info":["201209\/20120905rmyr8iZMs6.jpeg","201209\/20120905b1i8bI1C9x.jpeg","201209\/20120905Z0zFDjUF61.jpeg","201209\/20120905144fN9oLlz.jpeg"],"data":""}';var obj = eval('(' + str + ')');
    alert(obj.info.length);//info长度 为4
    var i=3;//测试最后一个元素
    if("undefined" == typeof(obj.info[(i+1)])){
    alert(321);
    }else{
    alert(obj.info[(i)])
    }希望能有所帮助
      

  5.   

    如果说那个str里面的东西不是固定的,是有ajax与php交互产生的,我该怎么写
      

  6.   

    那个info你得知道,要不怎么解析,别的不用管,传过来的data设为json或是数组,转为object正常解析
    有info总长度,有当前下标,其实全都出来了不是吗
      

  7.   

    不会js?那就先去补习一下
    不是如何解释php出过来的json
    而是你js要求什么样的数据,php才传什么数据
    主次不能颠倒了!在你这个应用中,php只是辅助工种中,待遇很低的
      

  8.   

    我的这个info是根据页面的内容变化的,不是一个固定的值,而且你说传过来的data设为json或是数组,转为object正常解析,但是传来的data是空数据啊!而且这只是弹出一个文件名,图片还是没法显示出来
      

  9.   

    空数据?那是php问题了!
    没有数据还怎么做解析前一个后一个的,有data才能进一步解析啊,先解决传来的data问题
      

  10.   

    我的js就想获得info里面的图片名称,然后显示出来,并且具有翻页效果
    public  function see(){
    if(!$this->isAjax()) exit;
    $id = isset($_POST["id"]) ? intval($_POST["id"]):$this->error('获取错题失败');
    $total = isset($_POST["total"]) ? intval($_POST["total"]) :$this->error('获取错题失败');
    $direct = isset($_REQUEST["direct"]) ? trim($_REQUEST["direct"]) : "";
    if($total==0) $this->error('没有更多图片');
    if($total>0){
    if(empty($img)){
    $Book = BM('Book');
    $info = $Book->getMyDetail($id,$this->_user->userid,$direct); //查询数据$info['morefile']里面有一个数组,存储的是图片名
    if(!$info) $this->error('获取错题失败');
    $more = unserialize($info['morefile']);
    $info['morefile'] = $more;
    $img[0] = $info['filename'];
    for($i=0;$i<$total;$i++) {
    $img[$i+1] = $info['morefile'][$i]; }
    }
    }
    $this->success($img);
    }
    你看看有什么错误不
      

  11.   

    public function see(){
    if(!$this->isAjax()) exit;
    $id = isset($_POST["id"]) ? intval($_POST["id"]):$this->error('获取错题失败');
    $total = isset($_POST["total"]) ? intval($_POST["total"]) :$this->error('获取错题失败');
    $direct = isset($_REQUEST["direct"]) ? trim($_REQUEST["direct"]) : "";
    if($total==0) $this->error('没有更多图片');
    if($total>0){
    if(empty($img)){
    $Book = BM('Book');
    $info = $Book->getMyDetail($id,$this->_user->userid,$direct); //查询数据$info['morefile']里面有一个数组,存储的是图片名
    if(!$info) $this->error('获取错题失败');
    $more = unserialize($info['morefile']);
    $info['morefile'] = $more;
    $img[0] = $info['filename'];
    for($i=0;$i<$total;$i++) {
    $img[$i+1] = $info['morefile'][$i];}
    }
    }
    $this->success($img);
    }
    这是我的php代码
      

  12.   

    public function see(){
    if(!$this->isAjax()) exit;
    $id = isset($_POST["id"]) ? intval($_POST["id"]):$this->error('获取错题失败');
    $total = isset($_POST["total"]) ? intval($_POST["total"]) :$this->error('获取错题失败');
    $direct = isset($_REQUEST["direct"]) ? trim($_REQUEST["direct"]) : "";
    if($total==0) $this->error('没有更多图片');
    if($total>0){
    if(empty($img)){
    $Book = BM('Book');
    $info = $Book->getMyDetail($id,$this->_user->userid,$direct); //查询数据$info['morefile']里面有一个数组,存储的是图片名
    if(!$info) $this->error('获取错题失败');
    $more = unserialize($info['morefile']);
    $info['morefile'] = $more;
    $img[0] = $info['filename'];
    for($i=0;$i<$total;$i++) {
    $img[$i+1] = $info['morefile'][$i];}
    }
    }
    $this->success($img);
    }
    这是代码