使用PHP和GET方法进行排序?
我正在尝试使用链接和使用PHP和GET方法进行排序?,php,sorting,methods,get,Php,Sorting,Methods,Get,我正在尝试使用链接和GET方法对它们进行排序。我将首先提供代码,然后解释我试图实现的目标。使用AJAX并使其动态(我想?)可能有更好的方法,但我想先从这个开始 代码: if(isset($_GET['order'])){$order = $_GET['order'];}else{$order = 0;} if(isset($_GET['field'])){$order_field = $_GET['field'];} switch($order) { case 0:
GET
方法对它们进行排序。我将首先提供代码,然后解释我试图实现的目标。使用AJAX并使其动态(我想?)可能有更好的方法,但我想先从这个开始
代码:
if(isset($_GET['order'])){$order = $_GET['order'];}else{$order = 0;}
if(isset($_GET['field'])){$order_field = $_GET['field'];}
switch($order)
{
case 0:
$order_next = "DESC";
break;
case "DESC":
$order_next = "ASC";
break;
case "ASC":
$order_next = 0;
break;
}
稍后,在HTML页面中,我有以下代码片段:
<?
if($order == 0)
{
printf("<a href='admin.php?field=lastname&order=%s'>Last</a>
", $order_next);
}
else
{
printf("<a href='admin.php?field=%s&order=%s'>Last</a><a class='sort_desc' href='admin.php?field=%s&order=%s'></a>
", $order_field, $order_next, $order_field, $order_next);
}
?>
好的。我有一个链接Last,它应该有3个位置,默认、描述顺序、ASC顺序。当我单击它一次时,它应该通过GET方法发送,我单击的字段是“Lastname”字段,我需要下一个位置(从默认位置(无排序)到下一个位置(本例中为DESC))。我不能很好地理解代码中的错误,或者我不理解一些东西,页面不是正确地重新加载了吗?当我单击链接时,会从GET方法读取
$order
和$order\u字段
,但是不会发生任何其他情况。由于某种原因,开关不起作用,$order\u next
不会更改为新值,并且只有1个链接,而不是2个:
默认值:链接“最后”
链接“最后一个”+链接三角形图片指向下方
如果我不能很好地解释这一点,我很抱歉,但我试过了。谢谢你抽出时间 将案例0:
更改为案例“0”:
世界上一切都会好起来:-)
这是因为交换机使用
要了解原因,只需运行以下代码并查看结果:
var_dump("DESC" == 0);
将测试比较更改为:
if($order == 0)
到
您的Switch语句每次都会在案例0中被捕获。如果您将代码中的0更改为“0”,如下所示:
$order = "0";
case "0":
if($order == "0")
它将按计划工作:)是的,这已经使它的一部分工作!非常感谢你!附言:第二部分也起作用了@Arno-我宁愿你做一个if($order==“0”)
,这就回答了第二个问题。非常感谢你!
$order = "0";
case "0":
if($order == "0")