文章列表正序、反序排列——利用JS动态改变跳转网址
JS代码如下:
<thead>
<tr>
<th><input class="check-all" type="checkbox" name="id[]" value="0" onclick="setCheck(this)" /></th>
<th><a onclick="order_by('userid')">用户</a></th>
<th><a onclick="order_by('title')">新闻标题</a></th>
<th><a onclick="order_by('content')">新闻内容</a></th>
<th><a onclick="order_by('hots')">点击</a></th>
<th><a onclick="order_by('categoryid')">新闻类别</a></th>
<th><a onclick="order_by('addtime')">添加时间</a></th>
<th>管理</th>
</tr>
</thead>
<script>
function order_by(obj)
{
//抓取当前网址
var url = window.location.toString();
var newurl; //申明变量作为新的跳转网址
//split()按照指定字符串切割成数组
var arr = url.split('?');
var weburl = arr[0];
//当前URL中不包含任何参数时
if(!arr[1])
{
newurl = url+'?order='+obj;
}else
{
//当前URL中包含一组参数由&连接起来,将当前的参数用&符号切割成数组
var model = arr[1].split('&');
var result = false;
//遍历数组
for(var i=0,len = model.length; i<len;i++)
{
//查找是否有一个成员,开头的字符串写的是'order='
if(model[i].indexOf('order=')==0) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。
{
//如果有,就把result改成true
result = true;
break;
}
}
//当网址参数没有包含oreder这个参数时,加上该参数,正序排列
if(!result) //!result == true,因此result为true时运行函数,result为false时,不运行。
{
newurl = url+'&order='+obj;
}else
{
if(model[i] == 'order=' + obj) //当网址参数包含oreder=obj时,修改该参数为反序排列
{
model[i] += ' DESC';
}else //前面用split('&')将参数切割成了数组,现在用join()将参数组合成字符串
{
model[i] = 'order=' + obj;
}
newurl = weburl + '?' +model.join('&');
}
}
window.location = newurl;
}
</script>
根据传入的URL参数值,可以自动在数据库里按正序或者倒序检索数据:
$order = $_GET['order']? $_GET['order']:'id DESC';
$sql="SELECT * FROM `news` $where ORDER BY $order";