我是php的新手,实际上并不知道这是否可能
我正在使用以下代码
使用php输出JSON代码echo json_encode($output, JSON_NUMERIC_CHECK);
但我想要做的是将上述数据放在变量中。
我试过
$JSONDATAX = json_encode($output, JSON_NUMERIC_CHECK);
但是当我调用$ JSONDATAX时它似乎不喜欢它。
原始回声方式完全正常。
编辑........
$lrs = CDB::ExecuteQuery($sql);
if($lrs) {
$jsonData = convert($lrs);
}
function convert($lrs) {
$intermediate = array();
while ($vals = CDB::GetAssoc($lrs)) {
$key = $vals['POS'];
$x = $vals['CODE'];
$y = $vals['COUNT'];
$intermediate[$key][] = array('x' => $x, 'y' => $y);
}
$output = array();
foreach($intermediate as $key => $values) {
$output[] = array(
"key" => $key,
'values' => $values
);
}
$data1 = json_encode($output, JSON_NUMERIC_CHECK);
}
?>
<script>
var negative_test_data = <?php echo $data1; ?>;
var chart;
nv.addGraph(function() {
chart = nv.models.multiBarChart()
.color(d3.scale.category10().range())
.rotateLabels(0) //Angle to rotate x-axis labels.
.transitionDuration(300)
.showControls(true) //Allow user to switch between 'Grouped' and 'Stacked' mode.
.groupSpacing(0.24) //Distance between each group of bars.
;
正如你所看到的,我在var negative_test_data之后使用php,但它不会产生任何东西。
答案 0 :(得分:1)
在您编辑的示例中,$ data是convert函数内的局部变量,因此无法在该函数外部访问它。应该返回json_encode的结果:
$data1 = json_encode($output, JSON_NUMERIC_CHECK);
应该是
return json_encode($output, JSON_NUMERIC_CHECK);
然后,可以回显转换函数的结果:
var negative_test_data = <?php echo $data1; ?>;
应该是
var negative_test_data = <?php echo convert($lrs); ?>;
(如果围绕整个部分可能会有一个额外的,取决于当$ lrs没有评估为真时你想要发生什么)
答案 1 :(得分:0)
这应该是你真正需要的:
$phpvar = json_encode($output);
echo "<script>var negative_test_data = {$phpvar};</script>";