Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在php文件中使用JS中的php_Javascript_Php - Fatal编程技术网

Javascript 如何在php文件中使用JS中的php

Javascript 如何在php文件中使用JS中的php,javascript,php,Javascript,Php,我有一个php文件,其中我在echo中添加了JS。 我现在想在JS范围内使用php函数,我该怎么做: <?php echo '<script> <?php function message() { echo "You will be redirected"; } ?> setTimeout(<?php message();>?,3000);</script>'; ?>

我有一个php文件,其中我在echo中添加了JS。 我现在想在JS范围内使用php函数,我该怎么做:

<?php
  echo '<script>
    <?php 
      function message() {
        echo "You will be redirected";
      } 
    ?>
    setTimeout(<?php message();>?,3000);</script>';
?>

PHP将首先在服务器上执行,因此您必须在.PHP文件中对其进行编码,以确保服务器通过PHP运行,然后将PHP嵌入JavaScript中,如下所示:

<script>
function message(){
    alert("<?= $phpMessage ?>");
    location.href = "http://www.example.com" /* The URL you would like the user to go to next */;
}
setTimeout(message,3000);
</script>

函数消息(){
警报(“”);
location.href=”http://www.example.com“/*您希望用户下一步转到的URL*/;
}
设置超时(消息,3000);
假设您希望显示来自PHP的消息,您可以将其嵌入警报语句中,如下所示。这会让你的用户感到尴尬

更优雅的解决方案是使用会话存储将消息传递到下一页

在接收数据并需要发送消息的页面上,在发送任何输出之前,第一个PHP命令应该是session\u start()。消息可以通过会话['message']保存在会话变量中,并可用于下一个脚本,如下所示:

one.php(第一页)



请注意,第二个脚本必须使用unset来清除消息。

无论您做什么,JavaScript都无法在页面上下文中执行PHP。基于您的示例,我认为您无论如何都不希望在PHP中这样做

如果您只想在重定向用户之前输出消息,那么JavaScript本身就是该作业的合适工具:

<script>
  function message() {
    document.write("You will be redirected");
  } 
  setTimeout(message,3000);
</script>

函数消息(){
写下(“您将被重定向”);
} 
设置超时(消息,3000);
我正在尝试想象一个场景,在这个场景中,像您所问的那样混合使用PHP和JavaScript是有意义的,但我不能

然而,如果你真的坚持

<?php
  function message() {
    return "You will be redirected";
  }

  echo '
    <script>
      setTimeout(() => document.write("' . message() . '"), 3000);
    </script>
  ';
 ?>

测试时间


请注意,JavaScript arrow函数语法是。

您必须区分客户端和服务器代码及其差异。我投票将此问题作为离题题结束,因为此问题的质量非常低。您想完成什么?快速,丑陋的黑客会直接用PHP呈现Javascript,并手动设置标题。@Kristrove这不是脱离主题的一个有效的结束理由。请投票给一个实际的结束原因。也许,他可以放入内联PHP文件或基本上用PHP呈现文件(并手动设置标题)。
<script>
  function message() {
    document.write("You will be redirected");
  } 
  setTimeout(message,3000);
</script>
<?php
  function message() {
    return "You will be redirected";
  }

  echo '
    <script>
      setTimeout(() => document.write("' . message() . '"), 3000);
    </script>
  ';
 ?>