Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将JSON数组从php传递给JS?

如何将JSON数组从php传递给JS?
EN

Stack Overflow用户
提问于 2017-08-15 04:11:30
回答 1查看 423关注 0票数 0

我试图从一组结果中填充一个morris.js图表。在我的控制器中,我创建了一个结果数组,并使用json_encode创建了一个json数组,下面是我使用print_r的视图中的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"Positive":7,"Negative":26,"Pending":786,"Contact the Clinic":242,"Misc":2} 

如何将它传递给我的morris.js图表,以使用这些数据作为标签/值对填充图表?无论我尝试什么,我要么得到一个空白图表,要么得到一个“未定义的”变量或"NaN“。这是我的控制器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function execute_search()
{
    // Retrieve the posted search term.
    $search_term = $this->input->post('search');

    // Get results count and pass it as json:
    $data = $this->search_model->count_res('$p_results_data');
    $pos = 0; $neg= 0; $pen = 0; $cont = 0; $misc = 0;
    foreach ($data as $item) {
        if ($item['result'] === 'Positive') {
            $pos++;
        } elseif ($item['result'] === 'Negative') {
            $neg++;
        } elseif ($item['result'] === 'Pending') {
            $pen++;
        } elseif ($item['result'] === 'Contact the Clinic') {
            $cont++;
        } else {
            $misc++;
        }
    }
    $res = array("Positive"=>$pos, "Negative"=>$neg, "Pending"=>$pen, "Contact the Clinic"=>$cont, "Misc"=>$misc);
    $data = json_encode($res);

    // Use the model to retrieve results:
    $this->data['results'] = $this->search_model->get_results($search_term);
    $this->data['chart'] = $data;
    $this->data['totals'] = $this->search_model->total_res('$total_res');

    // Pass the results to the view.
    $this->data['subview'] = ('user/search_results');
    $this->load->view('_layout_admin', $this->data);
}

我的morris.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$results = "<?php echo $chart ?>";
new Morris.Donut({
    element: 'donutEg',
    data: [
        $results
    ],
});

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 07:05:22

在javascript中,JSON.parse是您的朋友,假设您拥有由json_encode函数创建的JSON:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$results = "<?php echo $chart ?>";
new Morris.Donut({
    element: 'donutEg',
    data: [
        JSON.parse( $results )
    ],
});

或者有可能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$results = "<?php echo $chart ?>";
new Morris.Donut({
    element: 'donutEg',
    data: JSON.parse( $results )
});

但我的方式

认为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="hidden" id="chartData" value='<?php echo $chart; ?>' />

在JS中(使用jQuery):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var chartData = $('#chartData').val();
new Morris.Donut({
    element: 'donutEg',
    data: JSON.parse( chartData )
});

在查看了morris.js的文档之后,我发现您可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Looking at the docs for morris.js:
// http://jsbin.com/ukaxod/144/embed?js,output

// This is your data, but it's all in one json object
var chartData = JSON.parse( $('#chartData').val() );

// We need to break up that object into parts of the donut
var donutParts = [];
$.each( chartData, function(k,v){
    donutParts.push({
        label: k,
        value: v
    });
});

// Now create the donut
Morris.Donut({
    element: 'donutEg',
    data: donutParts
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45692599

复制
相关文章
js 数组转json,json转数组[js 数组与json 互相转换]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151825.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/24
12K0
php 数组转json对象 和json 数组
php中数组转json的规则是:当没有指定索引(0~n)时会转换为json数组,而指定了索引会转换为json对象。
全栈程序员站长
2022/06/24
6.4K0
js 数组转json和json转数组
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151869.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/24
8K0
js中onclick传json数据
js中onclick传json数据 现在要在onclick事件中传递对象参数,由于我们是通过字符串拼接传的,那我们传之前用JSON.stringify(value)先将JSON对象转为JSON字符串,传之后再用eval(value)将JSON字符串转为JSON对象。(当然了,方法很多,这只是其中一种)
别团等shy哥发育
2023/02/25
10.3K0
js中onclick传json数据
ajax前端传多维数组到php后台,关联数组转json到后台方法
这是一个技术性的问题,百度说的JSON.stringify(arr)是不能转换关联数组的,甚至索引数组也是有很多缺点
仙士可
2019/12/19
3.1K0
ajax前端传多维数组到php后台,关联数组转json到后台方法
js json字符串转json数组_string转json数组
查了很久,也实践了很多,都没有成功。网上说得最多的就是用 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包里面的
全栈程序员站长
2022/11/08
13.3K0
Js 数组转JSON格式
要点2:在js里写数组的时候是var data = new Array() 但是你如果是要转json显示的时候就要写成 var data = {},不然转出来的json全是空的。
全栈程序员站长
2022/06/24
12K0
Js 数组转JSON格式
js数组添加json数据[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133387.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/14
11.7K0
PHP 数组转 JSON支持中文
value: 要编码的值。该函数只对 UTF-8 编码的数据有效。 options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
九霄道长
2021/03/02
3K0
PHP数组转json「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151842.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/24
1.5K0
json数组对象转化为json字符串_js如何转数组
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
5.1K0
js数组、json、js对象的区别与联系
最近在敲代码时,遇上了一个关于JS数组的问题,由此引发了关于对象和json的联想,曾经觉得很畅顺的知识点突然模糊了。于是,为了理清这些东西,有了如下这篇文章。觉得没问题的猿们可以当复习,而那些带着疑问的童鞋可以细细看。当然,有任何问题欢迎指出。理清这些问题,第一步当然是找到他们的概念:js所有事物都是对象:字符串、数值、数组、函数…此外,JavaScript允许自定义对象 (1)JS数组,常态为var a = [1,2,3]的格式,用文字来形容就是一个有序数列。因为是有序的,所以里面的东西是按序排放。 (
IT架构圈
2018/05/31
9.4K0
js 二维数组 添加json数据及js数组与json字符串「建议收藏」
JSON(JavaScript Object Notation )是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,JSON是JavaScript原生数据格式。
全栈程序员站长
2022/09/01
4.4K0
js 二维数组转Json数组「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151829.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/24
2.5K0
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
2.7K0
【笔记php】如何使用PHP从JSON提取数据?
2022年8月26日16点36分 如何使用PHP从JSON提取数据? 不多bb,直接上示例 一 $Json = ' { "type": "fish9.cn", "name": "fish9.cn" }'; $fish = Json_decode($Json,true); echo $fish["type"]; //结果fish9.cn 二 $Json = '{ "type":"fish9.cn", "name":"fish9.cn", "daily":[{
吃猫的鱼Code
2023/02/02
4.9K0
js如何将json字符串转成json对象_前端json字符串转json对象
JSON字符串: var str1 = ‘{ “name”: “cxh”, “sex”: “man” }’; JSON对象: var str2 = { “name”: “cxh”, “sex”: “man” };
全栈程序员站长
2022/11/08
9.4K0
WebView 和 JS 交互,如何将 Java 对象和 List 传值给 JS ?
随着混合开发模式比较流行,很多时候,我们需要在原生的基础上,使用 WebView 加载网页,这样控制更加方便。今天我们来看看,如何将 Java 对象 和 List 集合传值给 JS 调用。 1 如何将 Java 对象实例传值给 JS 其实将我们在 Android 原生中将 Java 对象实例传值给 JS 承认并且可以使用的对象,方法非常简单。我们来举个例子。 1.1 Html 文件 我们在本地写了一个 html 文件,放在 assets 目录中。 <!DOCTYPE html> <html> <he
非著名程序员
2018/02/09
8.6K0
WebView 和 JS 交互,如何将 Java 对象和 List 传值给 JS ?
PHP数组转json遇到的问题汇总
数据库中的浮点数会自动转成字符串,这个是正常的,特别注意不要直接通过json传递浮点数,会出现精度丢失或错乱的问题,所以还是转字符串后传递为好。
超级小可爱
2023/02/20
1.2K0
PHP csv文件内容转成数组/Json
$lines = array_map('str_getcsv', file($filePath));; $result = array(); $headers = null; if (count($lines) > 0) { $headers = $lines[0]; } for($i=1; $i<count($lines); $i++) { $obj = $lines[$i]; $result[] = array_combine($headers, $obj);//转成数组
悟空聊架构
2018/06/26
1.6K0

相似问题

将php数组传递给json文件(PHP ->Json->JS)

24

如何将JS数组传递给PHP

24

如何将json值php传递给js

50

将数组从php传递给js

30

如何将PHP数组传递给JS并生成JS数组

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文