2013-11-02 88 views
1
<html> 
    <head> 

    <script type="text/javascript"> 
    var t; 
alert(t); 
    </script> 

    </head> 

    <body> 

    <?php 

    $dbhost = 'localhost'; 
    $dbuser = 'root'; 
    $dbpass = 'pass'; 

    $t_id = 6; 

    $con = new PDO("mysql:host=$dbhost;dbname=testing",$dbuser,$dbpass);    

    $q = $con-> prepare("query"); 

    $q -> bindParam(1,$t_id); 

    $q -> execute(); 
    $res = $q->fetchAll(); 

    foreach($res as $r) 
    { 
      $ab = $r[0]; 
     $abc = $r[1]; 
    }   
    echo $ab; 
    echo $abc; 
    ?> 
    <script type="text/javascript"> 
    t = <?php echo $abc;?>; 

    </script> 
    </body> 
    </html> 

當我在剛分配php變量後發出「t」變量時,它工作正常。 但我想在頁面的頭部使用「t」。 實際上我只是想從DB中設置JS變量。 怎麼辦?如何將PHP變量分配給JS變量

回答

0
<html> 
    <head> 
//move your php code to head of the page 
    <?php 

    $dbhost = 'localhost'; 
    $dbuser = 'root'; 
    $dbpass = 'pass'; 

    $t_id = 6; 

    $con = new PDO("mysql:host=$dbhost;dbname=testing",$dbuser,$dbpass);    

    $q = $con-> prepare("query"); 

    $q -> bindParam(1,$t_id); 

    $q -> execute(); 
    $res = $q->fetchAll(); 

    foreach($res as $r) 
    { 
      $ab = $r[0]; 
     $abc = $r[1]; 
    }   
    echo $ab; 
    echo $abc; 
    ?> 

    <script type="text/javascript"> 
     var t; 
     t = <?php echo $abc;?>; //add the database variable here you want to use  
     alert(t); 
    </script> 

    </head> 
    <body>  

    </body> 
    </html> 

讓我們知道,如果它仍撲朔迷離

1

嘗試像

<script type="text/javascript"> 
    t = '<?php echo $abc;?>'; 
</script> 
3

希望它可以幫助你,

<script type="text/javascript"> 
    var t = "<?php echo $abc;?>"; //if not initialised variable t before use var 
</script> 
1

我建議你把PHP代碼在任何html輸出之前作爲文件的第一部分。只要一個html字符被傳輸,文檔的完整標題就會被髮送,您將無法再更改標題信息。

要輸出的PHP變量的JavaScript,使用下面的代碼,如果$ ABC是一個字符串:

<script type="text/javascript"> 
    "use strict"; 
    var t = '<?php echo $abc; ?>'; 
    alert(t); 
</script> 

和如果$ ABC是一個數字值以下:

<script type="text/javascript"> 
    "use strict"; 
    var t = <?php echo $abc; ?>; 
    alert(t); 
</script> 

我強烈推薦使用

"use strict"; 

line。它會在開發過程中爲您提供更好的調試輸出。例如,它會告訴你是否給一個尚未啓動的變量賦值。幫助很多,相信我;-)。