如何呈现PHP输出来初始化JavaScript中的变量

How to render PHP output to initialise a variable in JavaScript?

本文关键字:JavaScript 变量 初始化 何呈现 PHP 输出      更新时间:2023-09-26

我想在JavaScript代码中调用一个回显值的PHP函数:

<?php
function ex()
{
  $num=10;
  echo($num);
} 
echo '<script type="text/javascript">
  function sam_click(clicked)
  {
    var x="<?php ex(); ?>";
    alert(x);
    return false;
  }
</script>'?>

然而,它不起作用。你能帮忙吗?

试试这个:

<?php
function ex()
{
  $num=10;
  echo($num);
} 
echo '<script type="text/javascript">
  function sam_click(clicked)
  {
    var x="' . ex() . '>";
    alert(x);
    return false;
  }
</script>'?>

试试:

...
var x="' . ex() . '";
...

尝试只回显您需要的内容

<?php
function ex()
{
  $num=10;
  echo($num);
} 
?>
<script type="text/javascript">
  function sam_click(clicked)
  {
    var x="<?php ex(); ?>";
    alert(x);
    return false;
  }
</script>
function ex()
{
    $num=10;
    echo $num;
    return $num; // if you want to get JS alert
}
echo '<script type="text/javascript">
function sam_click(clicked)
{
    var x='.ex().';
    alert(x);
    return false;
}
sam_click(); // if you want to get JS alert
</script>';

不回显$num,而是将其作为结果返回,然后将其附加到脚本部分。

<?php
function ex()
{
  $num=10;
  return ($num);
} 
echo '<script type="text/javascript">
  function sam_click(clicked)
  {
    var x="' . ex() . '";
    alert(x);
    return false;
  }
</script>'?>

另一个解决方案是heredoc和nowdoc:

<?php
// helper to call functions as nowdoc
// example: {$fn( function() )}
function fn($functionCall) 
{
  return $functionCall;
}
$fn = 'fn';
function ex()
{
  return 20;
}
$js = <<<EOT
<script type="text/javascript">
  function sam_click(clicked)
  {
    var x="{$fn(ex())}";
    alert(x);
    return false;
  }
</script>
EOT;
echo $js;

查看PHPDoc:

  • Nowdoc (PHP5.3 +)
  • Heredoc
  • 匿名函数(PHP5.3+)