-2

我有一个 php 数组,我想将它的值添加到一个 javascript 数组中。例如,我正在做这样的事情。

$k_data = json_encode($k)

因此

k_data = [2,3,4,8,9]

现在在javascript中我正在做如下

var s4 = [[]];
for(var i = 0; i<5; i++)
{ 
   s4.push([i,$k_data[i]]);
}
plot5.series[0].data = s4;

其中 plot5 是 jqplot 图。但这不起作用,当以下事情正常工作时,我得到了空白图表

for(var i = 0; i<5; i++)
{ 
   s4.push([i,Math.sin(i)]);
}

我在哪里犯错?

4

3 回答 3

1

那么你可以做一个 for 循环并回显 Javascript 命令来填充 Javascript 数组

<script>
var s4 = [[]];

<?php

$k_data = json_encode($k)
$i = 0;

foreach($k_data as $v) { 
   echo 's4.push([' , $i , ',Math.sin(' , $v , ')]);';

   ++$i;
}

?>

plot5.series[0].data = s4;
</script>
于 2013-11-07T13:20:49.257 回答
1

如果你只想处理 php 数组,你可以这样做——

首先,将数组内以生成逗号分隔的字符串,例如$str. 就像-

<?php
  $str = implode(",", $array);
?>

然后,使用split将 php 字符串转换为 javascript 数组。就像-

<script>
  var str = <?php echo $str; ?>;
  var array = str.split(',');
</script>

或者, json_encode() 可以直接帮助您-

<script>
 <?php
  $js_array = json_encode($php_array);
  echo "var js_array = ". $js_array . ";\n";
 ?>
</script>
于 2013-11-07T13:23:28.613 回答
1

您似乎在 javascript 中引用了一个 php 变量。请记住,PHP 是在服务器端执行的,而 javascript 是由浏览器执行的。因此,您需要将 PHP 变量传递给您的 javascript。假设您的 javascript 和 PHP 在一个 .php 文件中,将上面的 javascript 替换为以下内容应该可以:

<?php $k_data_js = implode("','", $k_data); ?>
var k_data = <?php echo "['" . $k_data_js . "']"; ?>;
var s4 = [[]];
for(var i = 0; i<k_data.length; i++)
{ 
   s4.push([i,k_data[i]]);
}
plot5.series[0].data = s4;

变量在第二行传递给 javascript。从那时起,您可以k_data在您的脚本中引用。

于 2013-11-07T13:35:52.663 回答