簡體   English   中英

在PHP和Javascript之間進行通信

[英]Communicate between PHP and Javascript

我在數據庫中有一個具有2列的表。 年齡,我將其顯示在HTML頁面中。

當用戶單擊它時,我想基於字段對HTML頁面中的表進行排序。

我有一個PHP函數可以根據字段進行排序。

但是在PHP中按排序順序獲取行之后,我正在尋找無需離開頁面即可更新HTML表的方法。

您不需要在客戶端和服務器之間進行通信即可,只需直接在客戶端上對表進行排序。

有一個jQuery插件可以很好地工作:

http://tablesorter.com/docs/

這是指向javascript庫的鏈接,以使您的表可以使用javascript而不是php進行排序。 我已經使用了很多次,效果很好。

Javascript可排序表,作者:Stuart Langridge

由於其他人已經了解了客戶端排序在這里可以很好地工作的事實,因此,我僅向您指出我最成功地使用這種資源的資源: Google數據表 ,它們的可視化庫的一部分。 這是您可以做什么的代表(破壞者:您想要的一切以及更多)。

您可以使用javascript進行排序,而無需與服務器進行通信。 例如,此代碼將根據第N列的內容對表進行排序:

function sortTable(table, column, skipHeader) {
  // Stick each row into an array.
  var rows = [];
  for (var i = skipHeader ? 1 : 0; i < table.rows.length; i++) {
    rows.push(table.rows[i]);
  }

  // Sort the array based on the innerText of the column'th cell in each row
  rows.sort(function(a, b){ 
    a = a.cells[column].innerText;
    b = b.cells[column].innerText;
    return a < b ? -1 : (b < a ? 1 : 0);
  });

  // Re-order the rows by removing/appending in the sort order
  for (var i = 0; i < rows.length; i++) {
    var row = rows[i];
    var container = row.parentElement;
    container.removeChild(row);
    container.appendChild(row);
  }
}

例如,要對文檔中的第一張表進行排序,請在第一列上跳過標題行:

sortTable(document.getElementsByTagName('table')[0], 0, true);

顯然,您需要修改此設置以適合您自己的口味,尤其是排序,但是比將數據發布回服務器要簡單得多,我認為這是您的建議。

暫無
暫無

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

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