如何使用php将我的记录集填充到我的javascript中

时间:2012-03-31 09:16:21

标签: php javascript populate

好的,所以我放ZZZ的地方应该重复行中的下一个值......

对这段JAVASCRIPT的人气价值.....

categories: ['<?php echo $row_testresults['date']; ?>', 'ZZZ', 'ZZZ']

我可以做到这样做....在另一个页面上..但我试图让它与javascript图表一起工作

一些无法使用的JAVASCRIPT代码.........

<?php do { ?><?php echo $row_TestResults['date']; ?><?php } while ($row_TestResults =     mysql_fetch_assoc($TestResults)); ?>
</body>
</html>
<?php
mysql_free_result($TestResults);
?>

4 个答案:

答案 0 :(得分:3)

使用json_encode()将PHP对象/数组/字符串转换为有效的JavaScript。

答案 1 :(得分:0)

您是否只想将每行的日期放在javascript数组中?你的代码非常接近,但我可能这样做:

<?php
$categories = '';
while ($row_TestResults = mysql_fetch_assoc($TestResults)) {
    $categories .= (empty($categories) ? '' : "','") . $row_TestResults['date'];
}
<script>
var categories = ['<?= $categories; ?>'];
</script>

答案 2 :(得分:0)

试试这个

<?php
functin getvalues() {

     while ($row_TestResults = mysql_fetch_assoc($TestResults)) {
        echo $TestResults[abc] .", "
     }

}

?>


<script type="text/javascript">
<?php
echo "var myCat=[". getvalues() ."]";

?>

</script>

答案 3 :(得分:0)

我喜欢我在上面看到的内容,但实际上将它拉下来并不容易......尝试抽象出你想要做的两件事。首先,手动编写您希望HTML看起来像的示例:

<script type="text/javascript">

// this is bad javascript, but relevant to his situation
series: [{
name: 'Tokyo',
data: [7.0,6.9,9.5,14.5,18.2,21.5,25.2,26.5,23.3,18.3,13.9,9.6]
}, {
name: 'New York',
data: [-0.2,0.8,5.7,11.3,17.0,22.0,24.8,24.1,20.1,14.1,8.6,2.5]
}, {
name: 'Berlin',
data: [-0.9,0.6,3.5,8.4,13.5,17.0,18.6,17.9,14.3,9.0,3.9,1.0]
}, {
name: 'London',
data: [3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]
}]
</script>

我将假设您的数据是二维数组。含义$ row_testresults的格式为$test_results['London']=Array(3.9,4.2,5.7)

接下来的假设:你在$ row_testresults中整理了一大堆数据。看看这个片段:

<?
function multiRow ( $sql ) {
    if( $sql == "" ) return FALSE;
    //echo "<hr>\$sql=$sql<br><pre>\n"; // \$row:
    $Q = mysql_query($sql);
    if( isData($Q) )
    while(  $row[]=mysql_fetch_assoc($Q) ) {
            ;//print_r( $row );
    }
    if( $row == "" )
            $rtn_stuff=FALSE;
    else
            for($i=0; $i<count($row); $i++){
                    if( $row[$i] == "" )
                            unset($row[$i]);
            }
    /*?>print_r( $row ): <? print_r( $row ); ?> </pre> <? */
    return $row;
}?>

如果您执行$row_testresults=multiRow($TestResults)之类的操作或更改$ testresults以获取生成所有这些数据的实际查询...那么下面的代码会让生活变得更简单:

现在,取一点重复并将其置于自己的循环中:

<script type="text/javascript">
series: 
<?php
$java_data=array();
foreach( $row_testresults as $city=>$arr ){
    $tmpstr = "{\nname: '$city',\n";
    $tmpstr.= "data: [".implode( ",", $arr )."]\n} ";
    $java_data[]=$tmpstr;
}
$java_output="[".implode(", ", $java_data)."]";
echo $java_output;
?>
</script>

像这样混合语言可能是糟糕的形式,但是当你可以把它拉下来时它很棒。我个人有一个艰难的时刻,即使jQuery和Ajax在java中完成所有这些,所以由于我对php非常熟悉,我会在动态ajax调用之前执行上述操作。

我还发现使用具有出色语法突出显示功能的编辑器至关重要。在Windows中我使用psPad,在gnome中我使用Geany。在KDE进入v4之前,我使用了凯特。