2013-10-03 165 views
0

我已經通讀了幾乎所有關於試圖獲取從PHP傳遞到javascript的數值的問題。正如你所看到的,我成功生成了隨機數並且效果很好,但是當我試圖將變量傳遞給graph.update函數時,即使兩個變量的值都根據螢火蟲(分別爲14060116和0,這是正確的)他們沒有把它更新到更新功能......任何想法?這是完整的腳本,如果它有幫助!變量不能從PHP傳遞到javascript

<script> 
(function() { 

    function createCanvas(divName) { 

     var div = document.getElementById(divName); 
     var canvas = document.createElement('canvas'); 
     div.appendChild(canvas); 
     if (typeof G_vmlCanvasManager != 'undefined') { 
      canvas = G_vmlCanvasManager.initElement(canvas); 
     } 
     var ctx = canvas.getContext("2d"); 
     return ctx; 
    } 

    var ctx = createCanvas("graphDiv1"); 
    var upld = <?php echo json_encode($dirupld[0]); ?>; 
    var upldred = <?php echo json_encode($dirupldred[0]); ?>; 

    var graph = new BarGraph(ctx); 
    graph.maxValue = 30; 
    graph.margin = 10; 
    graph.width = 450; 
    graph.height = 200; 
    graph.colors = ["#49a0d8", "#d353a0"]; 
    graph.xAxisLabelArr = ["Traditional", "Duplicate Reduced"]; 
    graph.update([upld, upldred]); 
    //graph.update([Math.random() * 30, Math.random() * 30]); 
}()); 
</script> 

不知道我失去了價值?螢火蟲是報告以下

var upld = 14060116; 
var upldred = 0; 
graph.update([upld, upldred]); 
+0

做嘗試把它們放在''「' – Deepak

+0

如果你可以看到Firebug的變量,那不是純粹的JavaScript問題嗎? :) –

+0

可以提供'json_encode($ dirupldred [0]);'從PHP腳本的示例輸出?它看起來像'upld'獲得一個整數,而不是JSON對象。 'upldred'也一樣 –

回答

0
First you will passing hidden values in php form 
something like this 
<input type="hidden" name="upld" id="upld" value="<?php echo json_encode($dirupld[0]); ?>"> 
<input type="hidden" name="upldred" id="upldred" value=" <?php echo json_encode($dirupldred[0]); ?>"> 

then you will get this value in javascript 

var upld=document.getElementById("upld").value; 
var upldred=document.getElementById("upldred").value; 

dont use below the code 
var upld = <?php echo json_encode($dirupld[0]); ?>; //Is not Correct 
    var upldred = <?php echo json_encode($dirupldred[0]); ?>;//Is not correct 

Use document.getElementById().value syntax 
+0

我確切地看到你在那裏做了什麼,感謝一噸,它完美的工作!將此添加到長期記憶中,因爲我保證我會在別處也需要它。 – Braden

0

嘗試改變graph.maxValue的價值得到upld顯示

我假設你沒有想到什麼顯示爲upldred,因爲它已經是0

0

你的PHP看起來很合理;你從PHP獲取整數,然後將這些整數作爲參數傳遞給條形圖。正如其他人所說,它顯示的事實意味着你的PHP很好,這是一個JS問題。

但因爲你設置graph.maxValue = 30;當您嘗試渲染的14060116值的圖表,你會得到一個錯誤:

Uncaught IndexSizeError: Index or size was negative, or greater than the allowed value. 

(我假設你正在使用http://www.williammalone.com/articles/html5-canvas-javascript-bar-graph/

+0

找出其中一個答案,我完全錯過了最大值部分。之前使用它進行調試,當我解決變量問題時,可能會花費我一分鐘的困惑! – Braden