动态地将存储在php中的数据添加到嵌套的json中
发布时间:2020-12-13 17:14:23 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试动态地在json中为jQuery甘特图生成数据.我知道 PHP,但我完全使用 JavaScript.我已经阅读了十几个关于如何动态地向json添加数据的解决方案,并尝试了几十种组合而没有任何东西.这是json格式: var data = [{ name: "Sprint 0",desc: "Analysis",valu
我正在尝试动态地在json中为jQuery甘特图生成数据.我知道
PHP,但我完全使用
JavaScript.我已经阅读了十几个关于如何动态地向json添加数据的解决方案,并尝试了几十种组合而没有任何东西.这是json格式:
var data = [{ name: "Sprint 0",desc: "Analysis",values: [{ from: "/Date(1320192000000)/",to: "/Date(1322401600000)/",label: "Requirement Gathering",customClass: "ganttRed" }] },{ name: " ",desc: "Scoping",values: [{ from: "/Date(1322611200000)/",to: "/Date(1323302400000)/",label: "Scoping",<!-- Somoe more data--> }]; 现在我有php db结果中的所有数据.在这里: $rows=$db->fetchAllRows($result); $rowsNum=count($rows); 这就是我想要创建json的方式: var data=''; <?php foreach ($rows as $row){ ?> data['name']="<?php echo $row['name'];?>"; data['desc']="<?php echo $row['desc'];?>"; data['values'] = {"from" : "/Date(<?php echo $row['from'];?>)/","to" : "/Date(<?php echo $row['to'];?>)/","label" : "<?php echo $row['label'];?>","customClass" : "ganttOrange"}; } 但是这不起作用.我试过没有循环并用纯文本替换php变量只是为了检查,但它也没有用.显示没有添加项目的图表.如果我通过将新项目添加到值列表来添加新项目,则它可以正常工作.因此,甘特本身或路径没有问题.基于以上所有,我假设问题是向json添加普通数据.有人可以帮我解决一下吗? 解决方法
首先,您要将属性添加到字符串而不是构建对象.如果你真的想这样做:
var data = [],row; <?php foreach ($rows as $row) : ?> row = {}; row.name ="<?php echo $row['name'];?>"; row.desc ="<?php echo $row['desc'];?>"; row.values = {"from" : "/Date(<?php echo $row['from'];?>)/","customClass" : "ganttOrange"}; data.push(row); <?php endforeach; ?> 无论如何它是不安全的(结果是正常的JS代码,不是正确的JSON对象 – 但是当你将它分配给变量时,我认为它不必是严格的JSON格式) 更好的方法是在PHP中构建数据结构并使用json_encode函数为JavaScript生成JSON数据: <?php $data = array(); foreach ($rows as $row) { $data[] = array( 'name' => $row['name'],'desc' => $row['desc'],'values' => array(array( 'from' => '/Date('.$row['from'].'>)/','to' => '/Date('.$row['to'].')/','label' => $row['label'],'customClass' => 'ganttOrange',)) ); } ?> var data = <?php echo json_encode($data); ?>; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |