JS代码如下:
<thead>
<tr> <th><input class="check-all" type="checkbox" name="id[]" value="0" οnclick="setCheck(this)" /></th> <th><a οnclick="order_by('userid')">用户</a></th> <th><a οnclick="order_by('title')">新闻标题</a></th> <th><a οnclick="order_by('content')">新闻内容</a></th> <th><a οnclick="order_by('hots')">点击</a></th> <th><a οnclick="order_by('categoryid')">新闻类别</a></th> <th><a οnclick="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";