2016-12-12 19 views
0

我需要在每個美國州的D3映射中顯示SQL表的值。下面是我的file.php代碼摘錄:如何在JavaScript代碼中插入PHP'while循環'?

  1. 下面是SQL查詢:

    $sql = "SELECT COUNT(State) FROM `mytable`"; 
    $sql_result= mysqli_query($cnx,$sql) or die('Could not execute' . mysqli_error()) ; 
    
  2. 這裏是我結果傳遞到一個數組

    <? while($myvar=mysqli_fetch_array($sql_result)) { **need to add both php and javascript below..** } 
    
    <?php $js_array = json_encode($myvar['0']);?> 
    
  3. 這裏是哪裏我需要傳遞數據:

    .forEach(function(d){ 
        var  kpi01=<?php echo "var nbcustomers = ". $js_array . ";\n";?>, // No of customers in that state 
          kpi02= ..... 
    
          sampleData[d]={kpi01, kpi02}; 
        }); 
    

任何人都可以幫助我建議,以正確插入while循環內的JavaScript代碼.forEach

+0

你不能在.js文件中做,但可以以.php或.html文件 – azad

+1

你需要使用AJAX調用到處理你需要在服務器端處理的PHP文件來完成。 PHP運行服務器端並運行BEFORE JavaScript,運行客戶端。 –

+0

旁註:你的sql查詢對我來說是一種僞(缺少一個引用),並且mysqli_error函數需要db連接作爲參數。 –

回答

1

不要試圖用名字中的數字來生成一堆變量。

只需在PHP中構建所需的數據結構(您的SQL查詢結果的數組),然後使用json_encode將其轉換爲JavaScript。

<?php 
    $my_array = []; 
    while($myvar=mysqli_fetch_array($sql_result)) { 
     $my_array[] = $myvar; 
    } 
    $js_array = json_encode($my_array); 
?> 
<script> 
var javascript_array = <?php echo $js_array; ?>; 
</script>