2013-11-02 87 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。它会在开发过程中为您提供更好的调试输出。例如,它会告诉你是否给一个尚未启动的变量赋值。帮助很多,相信我;-)。