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

问题描述

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

JS无法调用thinkPHP控制器传递回的数组的相关文章

ThinkPHP控制器间实现相互调用的方法_php实例

本文实例讲述了ThinkPHP控制器间实现相互调用的方法.分享给大家供大家参考.具体实现方法如下: ThinkPHP同一个项目里,两个控制器的方法如何相互调用呢?ThinkPHP提供了一个A(),通过它可以使控制器之间的方法相互调用,使得代码可以重复利用. 官方似乎对A()方法没有相关使用文档,现在通过一个例子来说一下如使用A()方法. 有两个控制器,ColumnsAction和NewsAction.ncatlist()是ColumnsAction的分类列表方法,现在我要在控制器NewsActi

Angular外部使用js调用Angular控制器中的函数方法或变量用法示例_AngularJS

本文实例讲述了Angular外部使用js调用Angular控制器中的函数方法或变量.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html ng-app="myApp" id="myApp"> <head> <meta name="viewport" content="width=device-width" /> <title>Test</

js如何调用qq互联api实现第三方登录

 这篇文章主要介绍了js如何调用qq互联api实现第三方登录,需要的朋友可以参考下 qq互联js SDK:http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E   代码如下: <script type=text/javascript>    在页面header中引入:<script type="text/javascript"  src="http://qzonestyle

ThinkPHP控制器里javascript代码不能执行的解决方法_php实例

本文实例讲述了ThinkPHP控制器里javascript代码不能执行的解决方法.分享给大家供大家参考.具体方法如下: 这里实例分析一下thinkphp在控制器里的网页特效代码不能执行解决方法,就拿"退出"这一项来说吧,我的"退出系统"链接是写到左边的框架里的,用js动态生成的.也就是说,没法通过链接里的target来指定. 复制代码 代码如下: $this->assign('jumpurl',__url__.'/login');<br>$this

SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller;   import java.util.Map;   import javax.servlet.http.HttpServletRequest;   import org.apache.commons.io.filefilter.FalseFileFilter; import org.slf4j.Logger; import

点聚weboffice调用VBA如何传递数组呢?

问题描述 点聚weboffice调用VBA如何传递数组呢? sheets(Array(1,2,3)).select 这是vba写法,JS 中sheets(new Array(1,2,3)).select貌似不可以哦 有用过的吗? 解决方案 http://blog.sina.com.cn/s/blog_50e9573d01014h8c.html 如果小喵的回答帮助了您,或者您希望得到小喵进一步的回答,请先采纳这个回答. 问题太多,小喵愿意为采纳我的问题的哥哥们奉献更多时间. 方法是光标移动到右边,

js 方法 调用-js方法调用问题,请求指点

问题描述 js方法调用问题,请求指点 如图,Onload 可以,onclick可以,这样写是不能这样调用么,本人初学,请各位大大指点一二 解决方案 把startCount()这句函数执行放到body标签执行后 </body> <script> startCount();//在body标签加载完后再执行,在body前面,因为页面元素还没加载完,执行startCount时,还没有Input这个节点,所以找不到,放在body加载后,页面就能根据id找到这个节点元素了. //Onload和

ASP.NET MVC 5 学习教程:控制器传递数据给视图

原文 ASP.NET MVC 5 学习教程:控制器传递数据给视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Server LocalDB Edit方法和Edit视图详解 添加查询 Entity Framework 数据迁移之添加字段 添加验证 Details 和 Delete 方法详解 在讨论数据库和模型之前,让我们先说说容控制器传递数据给视图

Android WebView使用方法详解 附js交互调用方法_Android

目前很多Android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性. 先说下WebView的一些优点: --可以直接显示和渲染web页面,直接显示网页 --webview可以直接用html文件(网络上或本地assets中)作布局 --和JavaScript交互调用  一.基本使用 首先layout中即为一个基本的简单控件: <WebView android:id="@+id/webView