php到JavaScript变量传输

时间:2012-10-10 10:04:36

标签: php javascript

我对JavaScript不是很熟悉,但对于我正在处理的项目,我需要使用db中的一些输入来绘制图形。你可以帮我把php值转移到javascript。我只想使用db中的数据绘制饼图。

<div id="pie" style="width:250px;height:250px;">

    <?php 
        $k=0; 
        if (isset($distrib)){
            foreach($distrib as $row){
              echo $distrib[$k]['lang'];
              echo $distrib[$k]['NumArt'];
               $k++;
            }
        }
    ?>​

    <script class="code" type="text/javascript">
        $(document).ready(function() {
            var data = [];
            var plot1 = jQuery.jqplot('pie', [data], {
                seriesDefaults: {
                    // Make this a pie chart.
                    renderer: jQuery.jqplot.PieRenderer,
                    rendererOptions: {
                        // Put data labels on the pie slices.
                        // By default, labels show the percentage of the slice.
                        showDataLabels: true
                    }
                },
                legend: {
                    show: false,
                    location: 'e'
                }
            });
        });​
    </script>

修改

我仍然在努力解决这个问题。这些js图表正在扼杀我。

所以这是一个额外的问题,希望能够结束我的痛苦

                            if (isset($distrib)){
                                foreach($distrib as $row){
                                  $p[] = $distrib[$k]['langName'];
                                  $s[] = $distrib[$k]['lang'];
                                  $q[] = $distrib[$k]['NumArt'];
                                   $k++;
                                }}  
                            ?><?php $c = array_combine($p, $q); ?>

                        <script class="code" type="text/javascript">$(document).ready(function(){


                                    <?php echo "var s1 = [".implode($c, ",")."];" ?>
                                var plot3 = $.jqplot('pie',  [s1], {

基本上,图表正在打印出numArt,但它不会打印我想要的langName。 Lang name以其原生字母表存储语言,这意味着从阿拉伯语到祖鲁语的任何语言。我尝试使用JSON没有成功(我完全缺乏该领域的知识)。我的d /编码搞砸了,所以我离开了那条道路。

我的目标是呈现一张图表,其中包含该语言的语言名称和文章数量。

所以这是来自
的print_r $ p

数组([0] =&gt;无[1] =&gt; Catal [2] =&gt;français[3] =&gt; Malti [4] =&gt;português[5] =&gt;斯瓦希里语[6] =&gt; isiZulu [7] =&gt;英文)

和$ q 阵列([0] =&gt; 1 [1] =&gt; 1 [2] =&gt; 1 [3] =&gt; 2 [4] =&gt; 1 [5] =&gt; 1 [6] =&gt; 1 [7] =&gt; 1)

和$ c的组合 数组([无] =&gt; 1 [Catal] =&gt; 1 [français] =&gt; 1 [Malti] =&gt; 2 [português] =&gt; 1 [Kiswahili] =&gt; 1 [isiZulu] =&gt; 1 [英文] =&gt; 1)

最后我需要s1成为这些方面的东西

[[ '无',1],[ '法语',1],[ '马尔蒂',1]]


4 个答案:

答案 0 :(得分:1)

<script type="text/javascript">

var data = [ <?php echo implode(",", $array_of_values); ?> ];
<script>

确保$array_of_values是一个数组(PHP),其中包含您要在data变量(JS)中传递的值。

更新:

$string_array = array();
foreach( $array as $key=>$value )
{
  $string_array[] = '[' . $key . ',' . $value . ']';
}

然后内爆。

答案 1 :(得分:0)

如果这是你正在寻找的东西我不是肯定的,但是:

假设你在php中有$ var1 = 25。假设你想要保存在你的js文件的var1中:

<?php
    echo $var1=25; 
    echo "var var1=$var1";
?>

请记住javascript是客户端而php是服务器端,因此2不进行交互(不包括ajax等)。在发送响应之前运行PHP并在浏览器中运行javascript。你可能已经知道了,但只是为了怀疑。

答案 2 :(得分:0)

您没有提到您想要的值,或者您想要的javascript中的位置。

您似乎熟悉echo PHP值,因此除了在javascript函数中执行此操作外,您只需要执行相同操作。

答案 3 :(得分:0)

//...
$(document).ready(function(){

    <?php echo "var data = [".implode($distrib, ",")."];" ?>

    // ...
});

Stringify数组并将一个var声明回显给javascript。