2017-09-20 50 views
-1

我正在製作一個網頁,以表格的形式顯示來自兩個不同位置的數據。我有一個選擇下拉菜單來選擇位置。在選擇位置時,我想更改表格內容以匹配該位置。有沒有一種方法可以用javascript來替換整個表格的新數據?

我已經有需要(我從一個python腳本時得到的頁面加載一個PHP變量),我只需要能夠與新的字符串替換當前表中的數據表內容的HTML字符串。

我在網上看過,但我找到的所有答案都是關於替換單個行中的數據。

這是我有:

HTML:

<select name="site_switch_location" id="site_switch_location" 
onchange="changeTableData()"> 
    <?php echo $resultData["site_switch_fill"] ?> 
</select> 

<table id="all_data" align="center"> 
    <?php echo $resultData["table_fill"][$_SESSION["location"]] ?> 
</table> 

的Javascript:

<script type="text/javascript"> 
    function changeTableData() { 
    var new_location = document.getElementById("site_switch_location").value; 
    var table_data = <?php echo $resultData["table_fill"][new_location] ?>; 
    document.getElementById("all_data").innerHTML = table_data; 
    } 
</script> 
+2

你對這些工作有一個基本的誤解。你的php代碼在服務器上運行。運行它的結果然後發送到瀏覽器。在那裏,JavaScript被解釋。所以......是的,你想做的事情是可能的,但這並不是它如何完成的開始。在Web上查找AJAX,這是使用JS異步加載/更新數據的技術的通用名稱(即在頁面加載完成後) – spectras

+1

支持觀看註釋​​,您需要使用ajax調用來獲取另一個表數據。如果你第一次同時獲得兩個表數據,那麼你需要渲染兩個表,並根據你的變化使用樣式顯示塊或者none。 –

+0

這是你正在嘗試做什麼? http://jsbin.com/sesomequza/edit?html,js,output – bassxzero

回答

0

使用jQuery框架,你可以創建一個請求的服務器端,並返回一個基礎設施響應。由於PHP是服務器端語言,因此數據只會被表示一次,因此,我們可以在後臺向服務器發送HTTP請求以刷新數據頁面。

$(function() { 
    var currentPagination = 1; 
    $.get('/path/to/file/or/dynamic/route', { pagination: currentPagination++ }) 
     .done(function(content) { 
      // your code logic to fill the table 
      console.log(content); 
     } 
    ); 
}); 

你的PHP文件看起來類似這樣:

if(empty($_GET['pagination']) || !isset($_GET['pagination'])) exit(); 
$entity = new PDO(); # your credentials 
$entity->setAttributes(); # your attributes ie ERR_MODE 
$query = $entity->prepare('SELECT x,y,z FROM table WHERE id > ? LIMIT 1'); 
$query->execute(array($_GET['pagination'])); 
header('Content-Type: application/json'); 
die(json_encode($query->fetch()); 

因此,所有你正在做的是增加分頁(即列ID爲相應的數據),傳遞一個長HTTP(s)並使用AJAX更新表中的信息。

相關問題