2014-10-09 81 views
0

使用我很新的PHP和真的不知道這是可能的發送JSON數據到一個PHP變量在JavaScript

即時通訊目前使用下面的代碼

使用PHP輸出JSON代碼
echo json_encode($output, JSON_NUMERIC_CHECK); 

但我想要做的是將上述數據放在一個變量中。

我試圖

$JSONDATAX = json_encode($output, JSON_NUMERIC_CHECK); 

但它似乎並不喜歡它,當我調用$ JSONDATAX。

最初的回聲方式工作得很好。

編輯........

 $lrs = CDB::ExecuteQuery($sql); 

      if($lrs) { 
    $jsonData = convert($lrs); 
} 



function convert($lrs) { 

    $intermediate = array(); 

     while ($vals = CDB::GetAssoc($lrs)) { 
     $key = $vals['POS']; 
     $x = $vals['CODE']; 
     $y = $vals['COUNT']; 
     $intermediate[$key][] = array('x' => $x, 'y' => $y); 
    } 


    $output = array(); 

    foreach($intermediate as $key => $values) { 
     $output[] = array(
      "key" => $key, 
      'values' => $values 
     ); 
    } 

    $data1 = json_encode($output, JSON_NUMERIC_CHECK); 


} 










?> 
<script> 

var negative_test_data = <?php echo $data1; ?>; 

var chart; 
nv.addGraph(function() { 
    chart = nv.models.multiBarChart() 
    .color(d3.scale.category10().range()) 
     .rotateLabels(0)  //Angle to rotate x-axis labels. 
     .transitionDuration(300) 
     .showControls(true) //Allow user to switch between 'Grouped' and 'Stacked' mode. 
     .groupSpacing(0.24) //Distance between each group of bars. 

     ; 

正如你所看到的,我使用的PHP只是變種negative_test_data之後,卻什麼都不做。

+0

如果你做一個'print_r($ output)'你會得到一個數組嗎? – 2014-10-09 14:24:33

+0

當你試圖「回聲」時,你可以顯示代碼嗎? – andyroo 2014-10-09 14:28:34

+0

我用上面的代碼回顯一個數組,回顯它,並且這對我正在使用的圖表正常工作。但我試圖說如果我嘗試使它變成一個變量,它不起作用。 – Engl12 2014-10-09 14:28:46

回答

1

在你編輯的例子,$數據轉換函數內的局部變量,因此它不能在函數外部訪問。 json_encode的結果應返回:

$data1 = json_encode($output, JSON_NUMERIC_CHECK); 

應該

return json_encode($output, JSON_NUMERIC_CHECK); 

然後,轉換函數的結果可以附和道:

var negative_test_data = <?php echo $data1; ?>; 

應該

var negative_test_data = <?php echo convert($lrs); ?>; 

(應該可能是b e一個額外的,如果在整個部分,取決於你想要發生什麼時,$ lrs不計算爲真)

+0

- 謝謝你的答案男人,工作的一種享受!雖然我不得不做var negative_test_data = <?php echo convert($ jsonData); ?>;而不是$ lrs – Engl12 2014-10-09 19:48:46

0

這應該是你真正需要的:

$phpvar = json_encode($output); 
echo "<script>var negative_test_data = {$phpvar};</script>"; 
+0

我用過,$ phpvar = json_encode($ output,JSON_NUMERIC_CHECK); 和我的

  • 11. 發送json從javascript到php
  • 12. 我該如何發送一個Javascript變量給php變量?
  • 13. 發送數據到一個網站獲得一個JSON與PHP
  • 14. 發送blob變量從PHP到JavaScript
  • 15. Ajax沒有發送JavaScript變量到PHP
  • 16. 我不能發送PHP變量到JavaScript
  • 17. 如何發送JavaScript動態數據到php變量沒有AJAX
  • 18. 如何將javascript變量數據發送到php
  • 19. 發送與MySQL數據PHP變量回到JavaScript和AJAX
  • 20. 發送JavaScript變量PHP變量
  • 21. 發送變量從一個功能到另一個PHP函數
  • 22. JavaScript,PHP - 將多個數據庫記錄發送到JavaScript中的變量或表
  • 23. 發送陣列從JavaScript的一個變量到PHP
  • 24. 通過AJAX發送一個Javascript變量到PHP
  • 25. 發送PHP變量爲JavaScript函數
  • 26. 發送JSON數據到一個URL
  • 27. 發送一個數組從PHP到javascript
  • 28. 在發送JavaScript變量類型轉換到PHP變量
  • 29. 如何發送JavaScript變量作爲一個PHP參數
  • 30. 在Javascript中發送一個額外的變量到另一個PHP文件