簡體   English   中英

PHP代碼只在javascript setInterval中運行一次

[英]PHP code only runs once inside javascript setInterval

我只是在JC課上學習PHP和Javascript。 我有一個學校項目的以下內容。 以下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();
?>

基本上當你在javascript中編寫php代碼時,它總是在頁面加載時運行一次。 在此之后你只是將php代碼寫入瀏覽器,這根本就是不明白(Php是在服務器上處理的,輸出是Html,Css和Javascript,瀏覽器可以解釋)

因此,如果您需要從服務器更新數據而不重新加載頁面,那么執行此操作的唯一方法是使用Ajax請求,它基本上連接到頁面內的服務器並從中獲取數據。

更多關於Ajax: Ajax Basics

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM