2012-03-31 28 views
4

好了,所以在這裏我把ZZZ的應該重複的行中的下一個值...我如何填充我記錄了我的JavaScript的使用PHP

填充VALUES成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); 
?> 

回答

3

使用json_encode()將PHP對象/數組/字符串轉換爲有效的JavaScript。

0

你只是想每行的日期在JavaScript數組中?你是非常接近你的代碼,但我可以做這樣的:

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

Per @ ThiefMaster,json_encode可能是將數組返回到頁面的最佳方式。如果結果行中的值比日期列中的值多,則需要在PHP中循環設置並使用日期值構建數組。然後json_encode會讓你的JavaScript數組。 – davidethell 2012-03-31 09:28:15

+1

json害怕我...大聲笑我沒有想法它是如何工作的... – 2012-03-31 10:06:38

0

試試這個

<?php 
functin getvalues() { 

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

} 

?> 


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

?> 

</script> 
+0

請注意,IE討厭掛在javascript數組上的逗號。你的代碼在最終值後會得到一個額外的逗號。 – davidethell 2012-03-31 11:04:56

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之前,我用Kate。

+0

我想也許如果你在上下文中看到它,我正在加載一個圖。 http://fish.cutewhitecloud.com/graph.php – 2012-03-31 10:04:37

+0

哦,酷!我會編輯我的答案 – 2012-03-31 10:14:04

+0

我試圖讓它工作...大聲笑,我有我的Mac上約10文本編輯器,我敢肯定其中一人將工作。 – 2012-03-31 11:12:59

相關問題