2013-09-27 93 views
0

我以前問過這個問題,但我提供的例子並沒有提供我真正的問題。在JS功能使用PHP變量

我想從一個使用php變量的表單獲得輸入,並在javascript函數中使用它。我不直接使用javascript,因爲所討論的變量的內容是從mysql數據庫中獲得的,我不認爲有一種方法可以讓我使用javascript訪問數據庫。

低於其的代碼,我迄今爲止:

<!DOCTYPE html> 
<html> 
    <head> 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 

<script> 
function initialize() { 
    var slon1 = '<?php echo (json_encode($siteLon1)); ?>'; 
    self.alert(slon1); 

    //some code goes here. 
} 
</script> 

</head> 
    <body> 
     <div align="center"> 
    <form method="get"> 
     <label>Choose Site</label> 
     <select name='ps' id="ps" data-inline="true"> 
         <?php 
          $use = $fgmembersite->getsites($fgmembersite->UserFullName()); 
          $fields_num = mysql_num_fields($use); 

          while($row = mysql_fetch_row($use)) 
          { 
           echo "<option value='".$row[0]."'>".$row[0]."</option>"; 
          } 
         ?> 
     </select> 
     <input type="submit" name="submit" value="View"> 
    </form> 
    </div> 
    <div id="map-canvas"></div> 

    </body> 
</html> 

令人驚奇的是,在顯示self.alert(slon1)的結果爲空;無論是當我剛剛加載頁面或從下拉框中選擇並點擊查看。請有人幫我解決這個問題。

謝謝。

+3

'$ siteLon1'從哪裏來?它沒有顯示在此代碼中的任何位置。另外,請記住,在頁面發送到瀏覽器之前執行所有PHP,並且在*之後發送所有JS *。因此,而不是使用'alert',您可以查看源代碼以查看PHP回顯的數據。 – IMSoP

回答

1

JSON編碼器應引用變量,因此手動使用單引號會觸發JavaScript解析錯誤。檢查JS控制檯。這應該生成有效的JS代碼:

var slon1 = <?php echo (json_encode($siteLon1)); ?>;