PHP代码只有JavaScript的setInterval内运行一次(PHP code only r

2019-08-31 08:12发布

我刚学PHP和JavaScript在JC类。 我有一所学校的项目如下。 下面setInterval()运行,每3秒,但嵌入的PHP代码仅第一次运行时。

newVal被更新的第一次,但不会改变它在下面的迭代值。 该脚本从未Telnet方式登录回到服务器中找到,如果值改变。

 setInterval(function () {
    var newVal, mem;

    <?php $telnet = new PHPTelnet();?>;
    <?php $result = $telnet->Connect('ip_address','username','password');?>;
    <?php   $telnet->DoCommand('show process memory summary"', $result);?>;
    <?php $result = preg_replace('/[\r\n ]+/',' ', trim($result)); ?>;

    newVal = "<?php echo substr($result,61,7) ?>"; 
    newVal = newVal / 10000;

    mem.update(newVal);
  }, 3000);

由于一些答案/下面的评论,这是我做的,使其工作:

使用Javascript

     setInterval(function () {
        $.get("memAccess.php", function(return_value) {
                mem.update(parseFloat(return_value));
        });
    }, 3000);

单独的PHP文件

<?php
    $telnet = new PHPTelnet();
    $result = $telnet->Connect('ip_address','username','password');

    $telnet->DoCommand('show process memory summary', $result);
    $result = preg_replace('/[\r\n ]+/',' ', trim($result));
    $result = substr($result,61,7);

    echo $result; 
    $telnet->Disconnect();
    exit();
?>

Answer 1:

基本上,当你写的javascript里面PHP代码,它总是运行一次,当页面加载。 在此之后,你只是写PHP代码是根本不明白(PHP在服务器上进行处理,输出为HTML,CSS和Javascript,该浏览器可以解释)浏览器

所以,如果你需要在不重新加载页面来更新服务器上的数据,要做到这一点的唯一方法是用AJAX请求,基本上从它连接到服务器的页面中,并获取数据。

更多关于Ajax: Ajax的基础知识



文章来源: PHP code only runs once inside javascript setInterval