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の名前は、アラビア語からズールー語まで、あらゆる意味のネイティブアルファベットで言語を保存します。JSONを使用してみましたが成功しませんでした(その分野の知識がまったくありません)。私のd/encodingがめちゃくちゃだったので、そのパスを離れました。

私の目標は、言語の名前とその言語の記事の量を含むグラフをレンダリングすることです。

これが
$pのprint_rです

配列([0] => none [1] => Catal[2]=>français[3]=>Malti[4]=>português[5]=>Kiswahili [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>

が変数(JS)$array_of_valuesに渡したい値を含む配列(PHP)であることを確認してください。data

アップデート:

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

次に、崩壊します。

于 2012-10-10T10:09:47.703 に答える
0

これがあなたが探しているものであるかどうか私は肯定的ではありませんが:

phpに$var1=25があるとします。jsファイル用にvar1に保存したい場合は、次のようにします。

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

javascriptはクライアント側であり、phpはサーバー側であるため、2つは相互作用しないことに注意してください(ajaxなどを除く)。PHPは応答を送信する前に実行され、javascriptはブラウザーで実行されます。あなたはすでにそれを知っているかもしれませんが、疑いのためだけです。

于 2012-10-10T10:08:23.637 に答える
0

必要な値や、JavaScriptのどこに必要な値については言及していません。

あなたはPHP値の作成に精通しているようですechoので、javascript関数で行う以外は同じことをしたいと思うでしょう。

于 2012-10-10T10:09:43.220 に答える
0
//...
$(document).ready(function(){

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

    // ...
});

配列を文字列化し、var宣言をjavascriptにエコーします。

于 2012-10-10T10:12:02.677 に答える