我有一个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)]);
}
我在哪里弄错了?
答案 0 :(得分: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>
答案 1 :(得分:1)
如果你只想处理php数组,你可以这样做 -
首先, implode 数组,以逗号分隔的字符串,比如$str
。就像 -
<?php
$str = implode(",", $array);
?>
然后,使用 split 将php字符串转换为javascript数组。就像 -
<script>
var str = <?php echo $str; ?>;
var array = str.split(',');
</script>
OR,json_encode()可以直接帮助您 -
<script>
<?php
$js_array = json_encode($php_array);
echo "var js_array = ". $js_array . ";\n";
?>
</script>
答案 2 :(得分: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
。