Как я могу использовать переменную PHP внутри моего JavaScript?

Я думаю, это тот случай, когда я не знаю javascript, но, ради бога, я не могу заставить его работать

По какой-то причине создание vars отменяет мой код оповещения java . (может быть, это неправильно) И мои java-переменные установлены неправильно.

Я указал на проблемы в своих комментариях.

В моем SQL все температуры имеют ассоциативное значение disk 'id'. Итак, моя структура данных в этом:

$array[id];
$array[id]=array();
//For every new element
//Using while ($row = mysql_fetch_assoc($result)) 
$array[id][]="temperature";

//second id
$array[id2];
$array[id2]=array();
//For every new element
$array[id2][]="temperature";
$array[id2][]="temperature2";
$array[id2][]="temperature3";
$array[id2][]="temperature4";

МОЯ ПОПЫТКА (НЕПРАВИЛЬНЫЙ КОД): // Я упростил этот код. В моей собственной версии соединение работает ТОЛЬКО, когда я использую фактический индекс «174» вместо переменной javascript, равной 174. Не удалось получить предупреждение о соединении в этой упрощенной версии

<?php
$phparray=array();
$phparray["100"]="First Element";
$phparray["101"]="Second Element";
$phparray["102"]="Third Element";

$phparray["100"]=array();
$phparray["101"]=array();
$phparray["100"][]="First Element - Sub 2";
$phparray["100"][]="First Element - Sub 3";
$phparray["101"][]="Second Element - Sub 2";


echo $phparray["100"];  //Does not show 'First Element'. Shows Array
echo $phparray["100"][0];   //Correctly shows sub element
//var_dump($phparray);


?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Associative Array in PHP used in Java Test</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
        <script type="text/javascript">

var index=100;
//var index2=<?php echo $phparray[index]; ?>; //Supposed to output 'First Element'
var joined=[<?php echo join($phparray[index], ', '); ?>];   //Supposed to join elements of '100'

alert("hello");  //This line does not work anymore after the var index2 made above
        </script>
    </head>
    <body>

<div id="container" style="height: 500px; min-width: 600px"></div>
    </body>
</html>

. РЕДАКТИРОВАТЬ: Вот длинный полный код моего php-страница:

<?php 
include_once("../../config.php"); 
$conn=mysql_connect($dbhost,$dbuser,$dbpasswd) or die ('Error connecting to mysql');
mysql_select_db($dbname);

ini_set('error_reporting', E_ALL);
//ini_set('display_errors',1);
ini_set('log_errors',1);

$sql = "select disk_id from disk";
$result = mysql_query($sql);
$ids = array();
$names=array();
$temperatures = array();
while ($row = mysql_fetch_assoc($result)) {
   $ids[] = $row['disk_id'];
    $temperatures[]=$row['disk_id'];
    //echo "<br>".$row['disk_id'];
}
//

foreach ($ids as $value)
{
//echo "--START ".$value."--<br>";
$sql = "select * from disk_data WHERE disk_id=".$value;
$result = mysql_query($sql);
$dates=array();
    $key = array_search($value, $temperatures);
    $temperatures[$value] = array();

//var_dump($temperatures);
while ($row = mysql_fetch_assoc($result)) 
{   
    $temps = $row['Temperature'];
    $temp = explode("||", $temps);
    $prehex=$temp[3];
    $posthex=hexdec(substr($prehex,-2));

    $predate=$row['create_date'];
    $postdate =strtotime($predate)*1000;


    $output="[".$postdate.", ".$posthex."]";
    //$temperatures[$key][] = $output;
    $temperatures[$value][] = $output;


    $dates[]=$row['create_date'];
    //echo $row['create_date']." ".end($temperatures[$key])."<br>";
}
}

print_r(array_keys($array));
var_dump($temperatures);
foreach ($ids as $value)
{
    //echo $value;
    $key = array_search($value, $temperatures);

    //echo "Key: $key; Value: $temperatures[$value]<br />\n";
    $comma = join($temperatures[$value],", ");
    echo $comma;
    echo "\n";
}



?>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highstock Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
        <script type="text/javascript">

$(function() {
    var seriesOptions = [],
        yAxisOptions = [],
        seriesCounter = 0,




        //names=[<?php echo join($ids, ', '); ?>],
        names=["174"], //Above code works. BUT only using ID 174 to test
        values=[<?php echo join($temperatures["174"], ', '); ?>], //Supposed to be ALL data. But temp 174
        colors = Highcharts.getOptions().colors;
    //alert(values);

    $.each(names, function(i, name2) {
//alert(seriesOptions.length);
alert(name2.toString()); //Works....
var values=[<?php 
echo join($temperatures[name2], ', '); ?>]; //Doesnt work
//alert(values);
console.log(values);
//document.write(values);


            seriesOptions[i] = 
            {
                name: name2,
                data:values

            };

            // As we're loading the data asynchronously, we don't know what order it will arrive. So
            // we keep a counter and create the chart when all the data is loaded.
            seriesCounter++;

            if (seriesCounter == names.length) 
            {
                createChart();
            }

    });



    // create the chart when all data is loaded
    function createChart() {

        chart = new Highcharts.StockChart({
            chart: {
                renderTo: 'container'
            },

            rangeSelector: {
                selected: 0
            },

                title: {
                    text: 'Test Performance Data',
                    style: {        
                margin: '10px 100px 0 0' // center it   
                }           
        },


            yAxis: {
            title: {text:'Temperature (°C)'}, 
                labels: {
                    formatter: function() {
                        return this.value + '';
                    }
                },
                plotLines: [{
                    value: 0,
                    width: 2,
                    color: 'silver'
                }]
            },

            plotOptions: {
            line: {
                gapSize: 0
            },
                series: {
                    //compare: 'percent'
                }
            },

            tooltip: {
                pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>',
                yDecimals: 2
            },

            series: seriesOptions
        });
    }

});
        </script>
    </head>
    <body>
<script type="text/javascript" src="../js/highstock.js"></script>
<script type="text/javascript" src="../js/themes/gray.js"></script>
<div id="container" style="height: 500px; min-width: 600px"></div>
    </body>
</html>
0
задан CREW 19 March 2012 в 21:01
поделиться