我如何将php变量的值赋给javascript变量

时间:2011-07-15 08:31:50

标签: php javascript

<html>
<head>
 <?php

         $bldg_number=-1;
 ?>
                      <script language="javascript" type="text/javascript">
                      var bldg=<?php echo $bldg_number; ?>
                      if( bldg < 0)
                          {
                            alert("me");
                          }
                      else
                          {
                            alert("hi");
                          }
                    </script>

    我期待输出警报,但是当我运行此页面时没有输出请告诉我为什么php变量的值没有传递给javscript变量

2 个答案:

答案 0 :(得分:3)

您的代码需要var行末尾的分号(请继续阅读原因):

<script language="javascript" type="text/javascript">
                      //               here --------------v
                      var bldg=<?php echo $bldg_number; ?>;
                      if( bldg < 0)
                          {
                            alert("me");
                          }
                      else
                          {
                            alert("hi");
                          }
                    </script>

JavaScript有一个名为“Automatic Semicolon Insertion”的功能,通常会使该错误无害(功能是否无害是另一个故事),但不幸的是PHP混乱了,因为ASI只会踢如果有一个缺少分号的换行符,PHP eats the linebreak following the ?> tag

  

...当PHP点击?>结束标记时,它只是开始输出它找到的任何内容(除了紧接着的新行 - 请参阅instruction separation

所以实际输出到你的页面是:

var bldg=-1    if( bldg < 0)

...这是JavaScript中的语法错误。添加分号会修复它,因为输出是:

var bldg=-1;    if( bldg < 0)

......这是有效的。

答案 1 :(得分:0)

尝试

var bldg=<?php echo $bldg_number; ?>;