我有一個ID,名字,狀態和表上方的表我想要4個鏈接,閱讀所有,熱,溫暖,冷。通過點擊鏈接,下面的表格將只顯示狀態=熱的用戶。最好是在php中創建新頁面以顯示所有用戶的相應狀態,或者是否有更好的方法來完成它,以便它們全部在單個頁面上完成?最好的方式來顯示數據
預先感謝您!
我有一個ID,名字,狀態和表上方的表我想要4個鏈接,閱讀所有,熱,溫暖,冷。通過點擊鏈接,下面的表格將只顯示狀態=熱的用戶。最好是在php中創建新頁面以顯示所有用戶的相應狀態,或者是否有更好的方法來完成它,以便它們全部在單個頁面上完成?最好的方式來顯示數據
預先感謝您!
你應該只在單個頁面上做..這是最好的做法。 我相信你是在按鈕的點擊刷新頁面,然後 你應該火的查詢中,你將不得不條件
$sql = "SELECT * FROM TABLE WHERE 1=1".(isset($_REQUEST['status'])? " AND status = '".$_REQUEST['status']."'":"");
這是相當開放的SQL注入,如果你使用這種方法確保你至少逃脫$ _REQUEST變量,然後在查詢中使用它們。 – phindmarsh
使用JavaScript會回落到多少條記錄,你會立即有顯示的決定。如果你在該表中有一行lot,那麼你的HTML會變得相當大,並且用JS來操縱它將花費很多資源。
如前所述,我會建議傳遞參數給PHP腳本,用正確的狀態進行篩選用戶,類似於下面的內容:
HTML
<div class="filter-status">
<a href="/script.php?status=all">All</a> -
<a href="/script.php?status=hot">Hot</a> -
<a href="/script.php?status=warm">Warm</a> -
<a href="/script.php?status=cold">Cold</a>
</div>
PHP腳本
// check the status is set in the arguments, and that its something we expect
if(isset($_GET['status'])
&& in_array($_GET['status'], array('all', 'hot', 'warm', 'cold'))){
$status = $_GET['status'];
}
else {
$status = 'all'; // default to show all rows
}
// get the rows from the database based on the status
$query = "SELECT * FROM table ";
if($status !== 'all')
$query .= "WHERE status = '".$status."'";
$query .= ';';
// do your mysql query as normal
然後,如果您的腳本位於www.domain.com/script.php
您可以通過訪問www.domain.com/script.php?status=hot
來過濾所有熱點。
我想你忘了更改''標記上URL的查詢部分。 –
已註冊並更正,謝謝 – phindmarsh
您的代碼已廣泛用於SQL注入。例如,'script.php?status =; TRUNCATE TABLE table' –
對於這種情況,你可以做兩件事情,
您可以使用JavaScript來獲取每行的「狀態」 TD的價值,只有顯示這些行。
您可以使用PHP和Ajax從不同的頁面獲取該內容,並讓jQuery(因爲它更舒適,然後使用普通ol'javascript)來獲取結果。
我將使用選項#2,因爲在較大的表上您可能想要限制結果或節省資源,這會更好。
/* JavaScript */
//NOTE THIS IS JQUERY, NOT REGULAR JAVASCRIPT!
//YOU MUST INCLUDE THE JQUERY LIBRARY BEFORE USING THIS!
$(document).ready(function() { //When DOM is ready.
$table = $('#status-table'); //Cache the table, no need to select it every time.
$('a.status').click(function() { //Add click handler, "when the link is clicked.."
status = $(this).text(); //Status = the text it has <a>TEXT</a>
$.get(
"filter-status.php", //Target
'status='+status, //Data
function(data) { //Callback
$table.hide().empty().append(data).slideDown();
}
);
})
})
並讓PHP爲表生成行。
JavaScript會爲你工作嗎? (這是誰的?你會擔心人們禁用JavaScript?) – jswolf19
我可以使用java,沒有人會禁用它 – Josh