将PHP变量传递给Javascript不能通过PHP函数(不是关于全局变量)

时间:2013-11-09 19:47:55

标签: javascript php function

我想将“$ var_external”传递给Javascript“SHOW”。

这里我称之为功能:

<?php
include("test23.php");

$call_function = test23(); 
?>

这是函数test23.php:

<?php

function test23() {

$var_external = 9999;       // This doesn't work

print("<a href=\"dummy\" id=\"SHOW\">Activate script</a>");

}
?>    

<script type="text/javascript">

$( function () {
  $("a#SHOW").toggle( function() {  

    var var_external =  <?php echo $var_external; ?>;

    alert(var_external);

  }, 
  function () {
    return false;
  });
});

如果单击“激活脚本”,则应将$ var_external传递给Javascript。

当$ var_external设置为时,PHP函数不起作用。

当我把$ var_external 放在外面的PHP函数时,它可以工作。

为什么它在PHP函数中不起作用?

2 个答案:

答案 0 :(得分:0)

不要使用全局变量,养成习惯是不好的做法。

您应该将值作为参数传递给函数:

function test23( $var_external ){
  // do stuff to modify it
  return $var_external;
}

然后打印结果:

<?php print test23($var_external); ?>

很难提供更好的建议,因为我不知道这些值是什么,以及它们为什么会被修改。

其他一些提示:

  • 必须在global工作之前在函数外部创建变量。
  • 确保始终打印一个值,如果它打印一个空/ null值,javascript将会中断。或者,使用引号然后转换为数字或任何您需要的内容

答案 1 :(得分:0)

遇到同样的问题,请使用''

var var_external =  '<?php echo $var_external; ?>';

如果php回显文本似乎javascript崩溃,如果php echo int没有崩溃。