我有一张带有ID,名字,状态和表格上方的表格,我想要4个链接,这些链接可以读取全部,热,冷,冷。点击链接,下表仅显示状态=热门的用户。是否最好在php中创建新页面以显示相应状态的所有用户,或者是否有更好的方法来完成所有这些都是一个页面完成?
提前谢谢!
答案 0 :(得分:1)
使用Javascript的决定取决于您一次显示多少条记录。如果您在该表中有很多行,那么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 SCRIPT
// 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
来过滤所有热门脚本。
答案 1 :(得分:0)
对于这种情况,你可以做两件事,
您可以使用Javascript获取每行“status”的值,并只显示这些行。
你可以使用PHP和Ajax从不同的页面中获取内容并使用jQuery(因为它比普通的'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为表生成行。
答案 2 :(得分:-1)
你应该只在单页中这样做..这是最好的做法。 我确定你正在按钮的点击重新加载页面 你应该解雇你将有条件的查询
$sql = "SELECT * FROM TABLE WHERE 1=1".(isset($_REQUEST['status'])? " AND status = '".$_REQUEST['status']."'":"");