2017-03-03 75 views
-4

我有一个php文件,里面添加了JS内部的echo。 我想用PHP函数里面,现在JS范围,我怎么能做到这一点:如何在一个php文件中使用php里面的JS

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

你必须分辨客户端和服务器代码及其区别。 –

+0

我投票结束这个问题作为题外话,因为这个问题质量很低。 –

+0

你想完成什么? – 4castle

回答

0

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> 

假设你想显示从PHP的消息,您可以在警报语句嵌入它作为< = $ phpMessage? ?>。这对您的用户来说会很尴尬。

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

在接收数据并需要发送消息的页面上,第一个PHP命令在发送任何输出之前应为session_start()。消息可以与$ _SESSION [“消息”]被保存在一个会话变量,这将是可用于下一个脚本,就像这样:

one.php(第一页)

<?php session_start(); $_SESSION['message'] = 'My Message'; 

two.php(第二页)

<?php session_start(); echo $_SESSION['message']; unset($_SESSION['message']); ?> 

注意,第二个脚本必须使用未设置清除消息。

+0

也许,他可以放入内联PHP文件或基本上使用PHP呈现文件(并手动设置标题)。 – Areeb

0

不管你做什么,JavaScript都不能在页面上下文中执行你的PHP。基于你的例子,我不认为你会想在PHP中这样做。

如果你只是想输出消息重定向用户之前,单独的JavaScript是这个职位的合适的工具:

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

我试图想一个方案,其中它将使意义的像你问的那样混合PHP和JavaScript,但我不能。

但是,如果你真的坚持...

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

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

测试在https://repl.it/GF2E/0

注意,JavaScript的箭头函数的语法是supported by all current browsers