2

1)javascriptがあるヘッドセクションには、次のものがあります

var chartData =[];
...

// generate some random data which I need to change to php array
generateChartData();
...

chart.dataProvider = chartData;
...

function generateChartData() {

            var firstDate = new Date();
            firstDate.setDate(firstDate.getDate() - 100);

            for (var i = 0; i < 100; i++) {
                var newDate = new Date(firstDate);
                newDate.setDate(newDate.getDate() + i);

                var PROCNT = Math.round(Math.random() * 4) + 100;
                var FAT = Math.round(Math.random() * 8) + 100;
                var CHOCDF = Math.round(Math.random() * 1) + 80;
                var glucose = Math.round(Math.random() * 1) + 110;
                var albumine = Math.round(Math.random() * 2) + 102;
                var creatinine = Math.round(Math.random() * 3) + 70;
                var Na = Math.round(Math.random() * 6) + 103;
                var K = Math.round(Math.random() * 4) + 110;
                var Ca = Math.round(Math.random() * 2) + 83;


                chartData.push({
                   date: newDate,
                   Protein: PROCNT,
                    Fats: FAT,
                    Carbo: CHOCDF,
                    Glucose: glucose,
                    Albumine: albumine,
                    Creatinine: creatinine,
                    Sodium: Na,
                    Potasium: K,
                    Calcium: Ca
                });
            }
        }  

これはこのランダムデータで問題なく機能し、適切な方法で表示されますが、息子が参加した後に持っている特定のmysqlクエリを使用してグラフィックを作成する必要があるためです。

2)特定のユーザーアクション後の私のphpプログラムには、次のものがあります。

while ($row = mysql_fetch_row($result)) {

             $date=$row[1];
             $PROCNT=$row[2];
             $FAT=$row[3];
             $CHOCDF=$row[4];
             $glucose=$row[5];
             $albumine=$row[6];
             $creatinine=$row[7];
             $Na=$row[8];
             $K=$row[9];
             $Ca=$row[10];

             $new=array_splice($row,1,-10);

             $chartData_1 = implode(', ', $new); 

$pass="date: $date, Protein: $PROCNT, Fats: $FAT, "
                    ."Carbo: $CHOCDF, "
                    ."Glucose: $glucose, "
                    ."Albumine: $albumine, "
                    ."Creatinine: $creatinine, "
                    ."Sodium: $Na, "
                    ."Potasium: $K, "
                    ."Calcium: $Ca";

         $json = json_encode($pass); 
                  echo $json;   

...次に、画面とデータグリッドを更新して...新しいグリッドとグラフィックを取得します

3)だから私の$ jsonは大丈夫に見えます:

"date: 2012-10-10, Protein: 10.6532, Fats: 45.5899, Carbo: 6.83007, Glucose: 120, Albumine: 3.9, Creatinine: 1.2, Sodium: 15, Potasium: 22, Calcium: 21"

4)$jsonをjavascripotchartData配列に割り当てる必要がある場所と方法を教えてください。

私はinetで見つけたすべてを試しましたが、それを機能させることができ、何が間違っているのか理解できません。私はプログラマーではないので、明確な説明をいただければ幸いです。

私のプログラムはクエリを作成し、グリッドを表示し、グリッドの後にグラフィックを表示します。ユーザーのアクションを待つため、特定の選択では、ステップ2で他のクエリを実行し、結果をグラフィックに表示するため、最初のグラフィックにはデータがありませんが、グリッド表示とユーザーアクションの後、 javascriptでchartData配列を埋めてグラフィックを表示しますが、「グラフィックを表示するために、このようなphp配列をjavascriptに送信する方法と場所は?

4

3 に答える 3

2

(例)で配列をjsonに直接エンコードしないのはなぜですか

$myKeys = array('date', 'Protein', 'Carbo' /*, ... */);
$myValues = array(date('m/d/Y'), 25.3, 32 /*, ... */);
$myData = array_combine($myKeys, $myValues);

$json = json_encode($myData);
echo $json; // {"date":"10\/18\/2012","Protein":25.3,"Carbo":32}

迅速な統合方法:

    <?php
    // your code that generate $result
    ?>


    <script type="text/javascript">

    /* ... your js ... */

    function generateChartData() {

    /* ... */

    <?php
    // a part of php to fill chartData
    while ($row = mysql_fetch_row($result)) {             

        // build data from $row 
        $json = json_encode($data);
        echo "chartData.push($json)\n";
    }
    ?>
    /* ... end of generateChartData... */
}
于 2012-10-18T14:19:08.613 に答える
0

php で解析JSonし、json の各要素を に追加しますjavascript array

var array = new Array(<?= $element1; ?>, <?= $element2; ?>);
于 2012-10-18T14:00:49.050 に答える
0
<script type="text/javascript">
   var yourarray = <?php echo json_encode($php_array); ?>;
</script>
于 2014-10-08T10:28:37.477 に答える