2011-02-14 40 views
0

我有2場數據庫(daynumber & datavalue),數據由本人與當時的PHP創建和傳遞變量成的jquery爲使用的圖表檢索。輸出MySQL數據到變量的jQuery

我不是這樣做的數組,因爲我需要將公式應用於datavalue字段。公式可以由用戶更改。

jQuery中,我需要能夠做到這一點:

cday_1 = <?php echo $day_1?>; 
cday_2 = <?php echo $day_2?>; 
tday_1 = (<?php echo $day_1 ?> * formula1/formula2; 
tday_2 = (<?php echo $day_2 ?> * formula1/formula2; 

的cday系列和tday系列將分別在圖進行描繪。

我的問題是,我可以手動命名在PHP每個變種,即:

$day_1=mysql_result($result,$i,"datavalue"); 

,但我有30行,我寧願用一個循環做到這一點。到目前爲止,我有這麼多:

$i=0; 
while ($i < $num) { 
$datavalue=mysql_result($result,$i,"datavalue"); 
echo "\$day_"; 
echo $i; 
echo " = "; 
echo $datavalue; 
echo "<br>"; 
$i++; 
} 

所以我遇到了一些問題。

第一個問題是,雖然一切都在迴應,但我不確定如何實際創建像這樣的變量(!)。

第二個問題是,在數據庫中只有30行,但34實際上是輸出,我不知道爲什麼。

我是自學的,所以對於笨拙的編碼和/或愚蠢的問題表示歉意。

+0

我認爲我沒有正確解釋自己。解決了如何自己做,並添加了解決方案。 – circey

回答

1

已經結束了這樣:

$i=0; 
while ($i < $num) { 
${"day_$i"}=mysql_result($result,$i,"datavalue"); 
$i++; 
} 

我有一種感覺,這是一個基本的問題,我只是沒有好好解釋一下自己。我無法使用數組,因爲我需要擺弄公式,所以這個解決方案工作得很好。

1

你可以只將它們存儲在一個PHP端陣列:

$days = array(
    'cday' => 'the cday value', 
    'dday' => 'the dday value', 
    etc... 
); 

,然後通過json_encode()它們自動轉換爲一個Javascript數組/對象。這個對象可以被髮送到你的頁面的Ajax響應,甚至嵌入到直接在頁面:

<script type="text/javascript"> 
    var days = <?php echo json_encode($days) ?>; 
</script> 

之後,您剛剛訪問值,你會在JS任何其他陣列。

+0

這將與我需要應用到第二個系列的公式一起工作:'tday_1 =(<?php echo $ day_1?> * formula1/formula2;'?該頁面有改變公式/值的按鈕,即:'$('#change1up')。click(function(){ formfig = formfig + 3; chartdraw(); });' – circey

+0

不是直接的,因爲formula1/formula2是Javascript變量--PHP沒有任何知識除非PHP首先生成它們,然而,沒有什麼說你不能在JS之後對數組進行按摩,至少這種方法不需要爲基本原始值逐個指定它們。 –