php不多次运行javascript

php不多次运行javascript,javascript,php,Javascript,Php,当此代码加载到网页中时,它将检测到$Update等于1并运行以下代码。但是在将$Update设置回0,然后再设置回1之后,它将不会重新运行下面的代码 我正在使用javascript每5秒刷新一个包含所有php代码的DIV,但它在初始加载时不会运行多次 有什么想法吗 提前谢谢 if($Update == "1"){ echo '<script type="text/javascript">document.getElementById("Sub1").style.display

当此代码加载到网页中时,它将检测到$Update等于1并运行以下代码。但是在将$Update设置回0,然后再设置回1之后,它将不会重新运行下面的代码

我正在使用javascript每5秒刷新一个包含所有php代码的DIV,但它在初始加载时不会运行多次

有什么想法吗

提前谢谢
if($Update == "1"){
    echo '<script type="text/javascript">document.getElementById("Sub1").style.display="none"</script>';
    echo '<script type="text/javascript">document.getElementById("Sub1Move").style.display="block"</script>';
    echo '<script type="text/javascript">$( "#Sub1Move" ).animate({marginTop: "-=34px",}, 2000, function() {});</script>';
    sleep(8);
    echo '<script type="text/javascript">document.getElementById("Sub1").style.display="block"</script>';
    $Update = "0";

}
if($Update==“1”){
echo'document.getElementById(“Sub1”).style.display=“无”;
echo'document.getElementById(“Sub1Move”).style.display=“block”;
echo'$(“#Sub1Move”).animate({marginTop:-=34px',},2000,function(){});
睡眠(8);
echo'document.getElementById(“Sub1”).style.display=“block”;
$Update=“0”;
}

PHP发生在服务器端,Javascript只影响客户端的内容。您不能仅使用Javascript刷新特定的
,希望它触发生成该特定
的PHP代码。一般来说,您希望让一切“实时”发生的事情都应该用Javascript编写,像您现在尝试的那样混合使用PHP和Javascript在某种程度上是可能的,但不可取,而且要困难得多

所以你想做的是

<script>
    // [...]
    $( "#Sub1Move" ).animate({marginTop: "-=34px",}, 2000, function() {});

    setTimeout(function(){
        document.getElementById("Sub1").style.display="block"
    }, 8000);
</script>

// [...]
$(“#Sub1Move”).animate({marginTop:-=34px',},2000,function(){});
setTimeout(函数(){
document.getElementById(“Sub1”).style.display=“block”
}, 8000);

您的php代码必须具有for循环,但是从php调用js来完成一项可以单独使用js完成的工作是不好的

this is better:
<script type="text/javascript">
    function func1() {
        //your code
    }
    setInterval(func1, 5000);
</script>
这样更好:
函数func1(){
//你的代码
}
设置间隔(func1,5000);

这不是它的工作原理。PHP是服务器端语言,Javascript是客户端语言。如果需要多次运行PHP,可以考虑对服务器进行AJAX调用。另请参见:请参见,我已经尝试将脚本放在自己的位置,并从php调用它,但这似乎不起作用。我会再试一次,但我认为它不会起作用。你不能从PHP调用Javascript,PHP在你加载页面时完成,之后的一切都是Javascript。这两者之间没有混合(当然有:通过AJAX或缓慢加载iFrame,但现在这无关紧要)。因此,如果我想在每次php代码中的变量更改时运行一些javascript来移动div标记,我该怎么做呢?您仍然可以用一些php运行一些javascript或Jquery,尽管这被认为是一种糟糕的做法@乔克里简单地说:你不能。如果数据库中的某些内容正在更改或其他外部源代码正在更改,则需要使用AJAX轮询每次相应更改的php文件。