2

我想做的是在脚本标签内运行 php 循环内的 javascript。例如:

<script>
$('#mydiv').mouseover(function(){
time();
function time(){
<?php  
    $secs = 45; 
    $secs--;
if($secs <= 25){
?>//javascript code here 
}
});
</script>

我的主要目的是当用户将鼠标悬停在一个 div 上时,一个 javascript 函数运行并且在该 javascript 函数内部有 php if conitions。如果时间小于 25 则执行指定的 javascript 代码。然后是另一个条件,如果时间少于 10,则执行另一个 javascript 函数。任何类型的帮助将不胜感激。谢谢

4

4 回答 4

7

JavaScript 是客户端脚本,PHP 是服务器端脚本。因此,您要么对服务器进行AJAX调用,要么只对纯 JS 进行调用。

AJAX+PHP:

<script>
    $('#mydiv').mouseover(function(){
        $.ajax({
            url: 'secs.php',
            success: function(data) {
                var secs = parseInt(data);

                if(secs <= 10) {
                    // do stuff
                }
                else if(secs <= 25) {
                    // do stuff
                }
            },
        });
    });
</script>

秒.php:

<?php
    session_start();

    if(!isset($_SESSION['secs'])) $_SESSION['secs'] = 45;
    else echo $_SESSION['secs'] --;
?>

纯JS:

<script>
    var secs = 45;

    $('#mydiv').mouseover(function(){
        secs --;

        if(secs <= 10) {
            // do stuff
        }
        else if (secs <= 25) {
            // do stuff
        }
    });
</script>
于 2012-06-18T09:12:41.583 回答
3

PHP 在服务器上运行并输出一些文本。

然后浏览器将该文本解释为 HTML/JS/等。

除非您发出新的 HTTP 请求,否则您无法运行 PHP 来响应客户端事件。

如果您知道 PHP 在页面构建时关心的值,那么您可以生成 JavaScript,并将该数据存储在变量中。

于 2012-06-18T09:07:21.120 回答
0

您不能在 Javascript 中使用 PHP,如果您需要服务器端操作,您应该使用 AJAX。jQuery 有一个简洁的实现。

于 2012-06-18T09:08:48.220 回答
0

你不能这样做,因为 php 在服务器上运行而 javascript 在客户端上运行。这意味着您的 php 代码在服务器上转换为 DHTML 并发送到客户端。但是javascript在客户端上运行......所以如果你想将它们结合起来。您必须再次从客户端请求服务器(例如通过 ajax)。

但回到你的代码......你为什么不在javascript中计算时间?你可以得到你想要的var date = new Date(); time = date.getCurrentTime()

于 2012-06-18T09:11:10.393 回答