【问题标题】:PHP output value of JS functionJS函数的PHP输出值
【发布时间】:2011-11-03 02:02:23
【问题描述】:
<html>
<script type="text/javascript">
function show_alert()
{
  alert("I am an alert box!");
}
</script>
<body>
<?php
$x = 8;

if($x ==10){
  echo "Hi";
}
else{
  echo 'show_alert()';
}
?>

</body>
</html>

如何让 echo 输出 show_alert() 的值?

【问题讨论】:

标签: php javascript


【解决方案1】:

改变

echo 'show_alert()';

echo '<script>show_alert()</script>';

以便浏览器知道将show_alert() 视为函数调用,而不是常规的 HTML 文本。

【讨论】:

  • 比我早两秒。这就是我写解释性句子的收获。
  • @Michael,少说话,多提供技术上正确但没有启发性的答案 :)
【解决方案2】:

你需要把它包装在一个脚本标签中:

if($x ==10){
  echo "Hi";
}
else{
  echo '<script type="text/javascript">show_alert();</script>';
}

注意,这不会等到页面加载完成后再调用show_alert()。只要浏览器在页面渲染中到达这一点,就会显示警报,否则在警报框后面可能是不完整的。如果你想让它等到整个页面加载完毕,把要调用的条件放在&lt;body onload&gt;

<body <?php if ($x != 10) {echo 'onload="show_alert();"';} ?>>
   <?php 
     if ($x == 10)
     {
         echo "Hi!";
     }
   ?>
</body>

【讨论】:

    【解决方案3】:

    如果您的意思是在浏览器呈现/评估该行时调用 showAlert()

    echo '<script type="text/javascript">show_alert();</script>';
    

    如果您的意思是在 PHP 中获取 showAlert() 的值,则不能 - PHP 是一种 server-side 语言。


    这个:

    echo 'show_alert()';
    

    只会在页面上打印“showAlert()”,除非你已经打开了&lt;script&gt;标签。

    【讨论】:

      【解决方案4】:

      我认为您可能对客户端代码和服务器端代码之间的区别感到困惑。 但是,如果您正确使用这两者,并且想让它出现:

      echo '&lt;script type="text/javascript"&gt;show_alert();&lt;/script&gt;';

      【讨论】:

        【解决方案5】:

        这在很大程度上取决于您希望何时调用 show_alert() javascript 函数。根据您正在使用的 PHP 代码猜测,我将假设您希望在页面加载后立即调用 javascript 函数,在这种情况下,您可能希望在正文加载之前使用 PHP,并添加一个 " onload" 属性事件处理程序到你的身体标签:

        if($x ==10){
           echo '<body>';
        }
        else{
          echo '<body onload="show_alert();">';
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-03-28
          • 2021-09-28
          • 1970-01-01
          • 2011-10-04
          • 1970-01-01
          • 1970-01-01
          • 2022-10-14
          相关资源
          最近更新 更多