superstarxue630
2016-03-07 10:49
采纳率: 50%
浏览 2.2k
已采纳

JS无法调用thinkPHP控制器传递回的数组

thinkPHP控制器中:

$day=array(1,2,3,4);

$this->assign("day", $day);

$this->assign("length", 4);
模板中:
变量可以调用,但是数组就是无法调用
alert("{$day[0]}");可以
但是var i=0; alert("{$day[i]}");不可以,因为{$day[i]}会被编译成PHP,i在PHP中不是变量,编译结果是echo ($day[i]);显示结果为空
如果写成"echo $i=0;";alert("$day[$i]");就可以了
我想要得到day这个数组,怎么才可以?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • baidu_34066826 2016-03-07 11:35
    已采纳

    echo json_encode($day);

    点赞 评论
  • superstarxue630 2016-03-07 12:26

    这个是PHP语句吧,我是要写在JS中的,JS需要day这个数组

    点赞 评论
  • 服务器端无法直接使用客户端变量,你将$day序列化为json字符串赋值给js变量,就可以用了,如

     <?php
    $s="[1,2,3]";//将json对象序列化为json字符串
    ?>
    <script>
    var arr=<?php echo $s;?>//赋值给js变量
    var i=0
    alert(arr[i]);
    </script>
    
    点赞 评论
  • superstarxue630 2016-03-08 00:34

    在网上看到JSON 和ALEX,但是不知道是什么或者用来做什么的,请教一下

    点赞 评论

相关推荐 更多相似问题