0

我对 JavaScript 不是很熟悉,但是对于我正在从事的项目,我需要使用数据库中的一些输入来绘制图表。你能帮我把 php 值传输到 javascript 吗?我只想使用数据库中的数据绘制饼图。

<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/encoding 搞砸了,所以我离开了那条路。

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

所以这是
$p的 print_r

Array ( [0] => none [1] => Catal [2] => français [3] => Malti [4] => português [5] => 斯瓦希里语 [6] => isiZulu [7] => 英语)

和 $q 数组 ( [0] => 1 [1] => 1 [2] => 1 [3] => 2 [4] => 1 [5] => 1 [6] => 1 [7] => 1)

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

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

[['none',1],['français',1],['Malti',1]]


4

4 回答 4

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 . ']';
}

然后内爆。

于 2012-10-10T10:09:47.703 回答
0

你还没有提到你想要什么值,或者你想要它们在 javascript 中的什么位置。

您似乎对 ing PHP 值很熟悉echo,因此您只想做同样的事情,只是在您的 javascript 函数中执行此操作。

于 2012-10-10T10:09:43.220 回答
0

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

假设你在 php.ini 中有 $var1=25。假设你想为你的 js 文件保存在 var1 中,你会这样做:

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

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

于 2012-10-10T10:08:23.637 回答
0
//...
$(document).ready(function(){

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

    // ...
});

对数组进行字符串化并将 var 声明回显到 javascript。

于 2012-10-10T10:12:02.677 回答