第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

自動(dòng)刷新 PHP 功能,無需重新加載頁面 Javascript / Ajax

自動(dòng)刷新 PHP 功能,無需重新加載頁面 Javascript / Ajax

慕神8447489 2023-11-02 22:30:05
是否可以使用 Ajax、Jquery 或 Javascript 調(diào)用特定的 PHP 函數(shù)并每 10 秒刷新/重新加載它,例如在特定的 Div 或區(qū)域內(nèi)?連接.phpfunction TerminalStatus ($IPAddress, $portStatus ) // Responsible for current terminal status{    $connectStatus = fsockopen($IPAddress, $portStatus, $errno, $errstr, 10); // Build cconnection to Terminal socket 25001    if (!$connectStatus) {        echo "$errstr ($errno)<br />\n";    } else {       $Status =  fgets($connectStatus) ;        echo $Status ();    }}這個(gè)連接只是為了查看終端的當(dāng)前狀態(tài)。我想在我的index.php 底部看到這個(gè)函數(shù)的狀態(tài),而不需要刷新整個(gè)頁面。我可以通過將此函數(shù)放入其自己的 PHP 文件 (status.php) 中并按以下方式使用 Javascript 來實(shí)現(xiàn)此目的:<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script><script type="text/javascript">    var auto_refresh = setInterval(        function ()        {            $('#Status').load('status.php');        }, 1000); // refresh every 1000 milliseconds</script>但我只想利用該功能。這可能嗎?
查看完整描述

4 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

您已經(jīng)擁有的解決方案是執(zhí)行此操作的正確方法:JavaScript 獲取 URL,并且該 URL 呈現(xiàn)適當(dāng)?shù)膬?nèi)容片段。

重要的是要記住,就 Web 瀏覽器而言,PHP 并不存在。來自瀏覽器的任何請(qǐng)求 - 無論您是否輸入 URL、點(diǎn)擊鏈接、提交表單、發(fā)出 AJAX 請(qǐng)求等 - 只是針對(duì)特定 URL 向某個(gè)遠(yuǎn)程服務(wù)器發(fā)送的消息,可能還包含一些額外的標(biāo)頭和身體數(shù)據(jù)。當(dāng)服務(wù)器收到該請(qǐng)求時(shí),它可以執(zhí)行任何操作來生成對(duì)瀏覽器的響應(yīng)。

因此,當(dāng)您編寫時(shí)$('#Status').load('status.php');,瀏覽器正在向服務(wù)器發(fā)送請(qǐng)求,而服務(wù)器恰好被配置為執(zhí)行 PHP 腳本status.php。然后,您可以在 PHP 中執(zhí)行您喜歡的操作來生成響應(yīng),但請(qǐng)求和 PHP 函數(shù)之間沒有直接鏈接。

然而,正如其他人指出的那樣,您不必為您想要的每一個(gè)行為創(chuàng)建一個(gè)新的 PHP 文件,因?yàn)?strong>在 PHP 代碼中您可以檢查以下內(nèi)容:

  • 查詢字符串參數(shù),在$_GET

  • 提交的表單數(shù)據(jù),在$_POST

  • 請(qǐng)求中的 HTTP 標(biāo)頭

這些可以通過您的 JavaScript 代碼設(shè)置為您喜歡的任何內(nèi)容,因此您可以編寫如下代碼$('#Status').load('index.php?view=statusonly');,然后在頂部index.php添加如下代碼:

if ( $_GET['view'] === 'statusonly'] ) {
    echo get_status();
        exit;
}

如何安排這完全取決于你,這就是編程的意義 ??


查看完整回答
反對(duì) 回復(fù) 2023-11-02
?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

我不確定我是否理解這個(gè)問題,但你可以使用 AJAX 來執(zhí)行特定的功能。像這樣的東西:


首先構(gòu)建你的ajax:


$.ajax({ 

  type: "POST",

  url: "URL_TO_PHP_FILE",  

  data: "refreshStatus", // this will call the function      

  success: function(status){          

    $('#Status').text(status); // this will load the info you echo

  },

});

由于您想每秒執(zhí)行一次 - 用間隔包裝整個(gè)事情(我使用問題中的代碼):


var auto_refresh = setInterval( function () {

    $.ajax({ 

      type: "POST",

      url: "URL_TO_PHP_FILE",  

      data: "refreshStatus",

      success: function(status){          

        $('#Status').text(status); 

      },

    });

}, 1000); 

然后,在 PHP_FILE 上添加條件,以便在 POST 完成時(shí)執(zhí)行特定函數(shù):


if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST['refreshStatus']) {

    // run this code 

}

這就是你想要實(shí)現(xiàn)的目標(biāo)嗎?


查看完整回答
反對(duì) 回復(fù) 2023-11-02
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

jQuery::load()支持片段標(biāo)識(shí)符。所以你可以只加載你想要替換的部分:

$(?"#Status"?).load(?"status.php?#PartId"?);

這將加載腳本的 HTML 輸出并提取該部分。PHP 腳本將完全運(yùn)行 - 其余的 HTML 輸出將在 JS 端被丟棄。


查看完整回答
反對(duì) 回復(fù) 2023-11-02
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

僅使用 PHP 函數(shù)是不可能完成此操作的。

您應(yīng)該像使用 JavaScript 一樣使用 JavaScript,或者使用 JavaScript 中的套接字來連接您的 status.php 并進(jìn)行更新,而無需刷新整個(gè)頁面。


查看完整回答
反對(duì) 回復(fù) 2023-11-02
  • 4 回答
  • 0 關(guān)注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)