【问题标题】:adding php array values to javascript array将php数组值添加到javascript数组
【发布时间】:2013-11-07 13:14:09
【问题描述】:

我有一个 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)]);
}

我哪里出错了?

【问题讨论】:

  • 代码可以是完整的js也可以是完整的PHP。
  • 谁能解释一下为什么是-2?
  • 我用的是yii框架,所以需要js和php。

标签: javascript php arrays


【解决方案1】:

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

首先,implode 数组以生成逗号分隔的字符串,例如 $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>

【讨论】:

    【解决方案2】:

    你可以做一个 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>
    

    【讨论】:

      【解决方案3】:

      您似乎在 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

      【讨论】:

        猜你喜欢
        • 2016-03-28
        • 2018-11-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-19
        • 1970-01-01
        • 1970-01-01
        • 2017-11-15
        • 1970-01-01
        相关资源
        最近更新 更多