问题描述
- 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这个数组,怎么才可以?
解决方案
echo json_encode($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>
解决方案三:
这个是PHP语句吧,我是要写在JS中的,JS需要day这个数组
解决方案四:
在网上看到JSON 和ALEX,但是不知道是什么或者用来做什么的,请教一下
时间: 2024-09-02 16:10:20