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 分配给 javascripot chartData 数组以及如何分配?

我已经尝试了我在 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
<script type="text/javascript">
   var yourarray = <?php echo json_encode($php_array); ?>;
</script>
于 2014-10-08T10:28:37.477 回答
0

用 php解析你的JSon,并为你的 json 中的每个元素将它添加到你的javascript array

var array = new Array(<?= $element1; ?>, <?= $element2; ?>);
于 2012-10-18T14:00:49.050 回答