簡體   English   中英

使用PHP更新部分網頁

[英]Update part of webpage using PHP

我正在使用PHP創建我的出勤網頁,當用戶輸入時,他會獲得當月的出勤。 用戶可以使用下拉菜單更改月份,從而刷新整個頁面。 我只希望刷新表,而不要刷新整個頁面。

誰能告訴我如何使用PHP做到這一點。

您必須將AJAX用於此類用途。 閱讀有關。

您可以使用ajax在dropdownlist的change事件上發送http請求以將其保存在數據庫中,這是發送請求的示例代碼

  function makeattan(p)
  {

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","afilename.php,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
  }

為此使用Ajax。

構建一個函數,該函數將通過ajax從服務器獲取當前頁面。 然后,數據將被放置在頁面的同一區域內,並用新內容替換舊內容。

您可以使用jQuery 加載

例如

$( "#result" ).load( "ajax/test.html", function() {
    alert( "Load was performed." );
});

注意,加載會自動替換內容。

您必須使用AJAX,例如,同時使用PHP和jQuery; 像這樣的東西:

HTML:

<a href="yourScript.php" class="ajaxLink">Load content</a>
<div id="dynamicContentDiv">

</div>

JS:

$( function() {
    $( ".ajaxLink" ).on( "click", function() {
        var ajaxUrl = $( this ).attr( "href" );
        $.get({
            ajaxUrl,
            function( response ) {
                $( "#dynamicContentDiv" ).html( response );
            }
        });
    }
}

使用此基本腳本,您可以將GET請求發送到腳本,並將響應放入dynamicContentDiv 請參閱jQuery文檔和AJAX資源以獲取更多高級行為。 ;)

PHP在服務器端運行。 從廣義上講,這是來自用戶的請求發生的情況:

  1. 用戶點擊下拉選項
  2. 瀏覽器將對新頁面的請求發送到服務器(myPage.php)
  3. 服務器在myPage.php上運行PHP代碼,從而產生一些通常的HTMl輸出(myPage.html *)
  4. 服務器以myPage.html響應
  5. 瀏覽器將頁面內容更改為myPage.html

您可以使用AJAX發送請求。 所發生的變化是瀏覽器返回了響應,但不更改頁面內容,它只是引發了一個事件,該事件包含可使用的myPage.html內容,但您希望在JavaScript中使用它。 在PHP方面,您什么也不能更改,重要的部分是更新頁面必須編寫的JavaScript。

顯然,由於您只更改了頁面的一部分,所以最好不要將整個myPage.html從服務器發送回去,而只發送頁面中要更改的部分,或者是有關如何更改頁面的藍圖。

*)myPage.html實際上不存在。 嚴格來說,這是我為PHP腳本myPage.php輸出指定的名稱。

您可以在整個Web上找到有關AJAX的良好資源。 我將提供最知名的鏈接之一,但是隨時可以找到一個適合您的鏈接。

https://developer.mozilla.org/zh-CN/docs/AJAX

PS:由於您將問題標記為jQuery,因此您應該知道jQuery對AJAX具有很好的支持。 我建議您(學習)使用它。

http://api.jquery.com/jQuery.ajax/

暫無
暫無

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

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