php sortable 动态排序

php sortable 动态排序未分页版.php

预览图:

<?php

mysql_connect("localhost","root","root");

mysql_select_db("test");

mysql_query("SET CHARACTER SET GB2312");

if($_POST["reorder"]){

$i=1;

foreach ($_POST["fruit"] as $fruit_id){

$query="update `fruit` set `order`=‘$i‘ where `id`=‘$fruit_id‘";

mysql_query($query);

$i++;

}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>宋正河作品--php sortable 动态排序未分页版</title>

<style>

ul li{

font-size:14px;

list-style-type:none;

background:#33CCFF;

margin:5px;

padding:5px;

border:1px solid #666666;

width:300px;

cursor:pointer;

}

</style>

<script language="JavaScript" type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

<script language="JavaScript" type="text/javascript" src="js/jquery-ui.js"></script>

<script language="JavaScript" type="text/javascript" src="js/ui.core.js"></script>

<script language="JavaScript" type="text/javascript" src="js/ui.sortable.js"></script>

<script type="text/javascript">

$(document).ready(function(){

$(‘#fruit_list‘).sortable();

});

</script>

</head>

<body>

<div align="center">

<form name="form1" method="post" action="">

<ul id="fruit_list">

<?php

$query="select * from `fruit` order by `order` ASC";

$result=mysql_query($query);

while($row=mysql_fetch_assoc($result)){

echo ‘<li><input type="hidden" name="fruit[]" value="‘.$row["id"].‘" />‘.‘ID:‘.$row["id"].‘ | ‘.‘名称:‘.$row["name"].‘ | ‘.‘序号:‘.$row["order"].‘</li>‘;

}

?>

</ul>

<input type="submit" name="reorder" value="重新排序" />

</form>

拖动相应的项目进行排序,序号越小越靠前

</div>

</body>

</html>

php sortable 动态排序分页版.php

预览图:

<?php

mysql_connect("localhost","root","root");

mysql_select_db("test");

mysql_query("SET CHARACTER SET GB2312");

//分页函数 调用 $common_func->pages();$total_num为总记录数,$page_id为当前页码,$add为链接地址(可选),$pagesize为新闻条数

function pages($total_num,$page_id,$add,$pagesize){

$total_page=ceil($total_num/$pagesize);

$up=$page_id-1;

$down=$page_id+1;

if($page_id==1){

echo "&lt;&lt;首页&nbsp;";

}else{

echo "<a href=".$add."page_id=1>&lt;&lt;首页</a>&nbsp;";

}

if($up<1){

$up=1;

echo "<span style=\"color:grey;\">&lt;上一页</span>&nbsp;&nbsp;";

}else {

echo "<a href=".$add."page_id=".$up.">&lt;上一页</a>&nbsp;&nbsp;";

}

echo "<select onchange=\"window.location=‘".$add."page_id=‘+this.value;\">";

for($i=1;$i<=$total_page;$i++){

if($i==$page_id){

echo "<option value=\"".$i."\" selected=\"selected\">&nbsp;&nbsp;".$i."/".$total_page."&nbsp;&nbsp;</option>";

}else{

echo "<option value=\"".$i."\">&nbsp;&nbsp;".$i."/".$total_page."&nbsp;&nbsp;</option>";

}

}

echo "</select>";

if($down>$total_page){

$down=$total_page;

echo "&nbsp;&nbsp;<span style=\"color:grey;\">下一页&gt;</span>&nbsp;";

}else {

echo "&nbsp;&nbsp;<a href=".$add."page_id=".$down.">下一页&gt;</a>&nbsp;";

}

if($page_id==$total_page){

echo "尾页&gt;&gt;";

}else{

echo "<a href=".$add."page_id=$total_page>尾页&gt;&gt;</a>";

}

echo " 共".$total_num."条记录 每页显示".$pagesize."条";

}

//分页函数

$page_id=intval(trim($_GET["page_id"]));

$page_id=($page_id=="")?"1":$page_id;

$page_id=($page_id>0)?$page_id:"1";

$pagesize=intval(trim($_GET["pagesize"]));

$pagesize=($pagesize=="")?"3":$pagesize;

$pagesize=($pagesize>0)?$pagesize:"3";

$begin=($page_id-1)*$pagesize;

if($_POST["reorder"]){

$i=$begin+1;

foreach ($_POST["fruit"] as $fruit_id){

$query="update `fruit` set `order`=‘$i‘ where `id`=‘$fruit_id‘";

mysql_query($query);

$i++;

}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>宋正河作品--php sortable 动态排序分页版</title>

<style>

ul li{

font-size:14px;

list-style-type:none;

background:#33CCFF;

margin:5px;

padding:5px;

border:1px solid #666666;

width:300px;

cursor:pointer;

}

</style>

<script language="JavaScript" type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

<script language="JavaScript" type="text/javascript" src="js/jquery-ui.js"></script>

<script language="JavaScript" type="text/javascript" src="js/ui.core.js"></script>

<script language="JavaScript" type="text/javascript" src="js/ui.sortable.js"></script>

<script type="text/javascript">

$(document).ready(function(){

$(‘#fruit_list‘).sortable();

});

</script>

</head>

<body>

<div align="center">

<form name="form1" method="post" action="">

<ul id="fruit_list">

<?php

$query="select * from `fruit` order by `order` ASC";

$result=mysql_query($query);

$total_num=mysql_num_rows($result);

$add="?";

$query=$query." limit $begin,$pagesize";

pages($total_num,$page_id,$add,$pagesize);

$result=mysql_query($query);

while($row=mysql_fetch_assoc($result)){

echo ‘<li><input type="hidden" name="fruit[]" value="‘.$row["id"].‘" />‘.‘ID:‘.$row["id"].‘ | ‘.‘名称:‘.$row["name"].‘ | ‘.‘序号:‘.$row["order"].‘</li>‘;

}

?>

</ul>

<input type="submit" name="reorder" value="重新排序" />

</form>

拖动相应的项目进行排序,序号越小越靠前<br />

<a href="?pagesize=<?php echo $total_num;?>">显示全部</a> | <a href="?pagesize=3">分页显示</a>

</div>

</body>

</html>

test.sql

-- phpMyAdmin SQL Dump

-- version 3.1.5-rc1

-- http://www.phpmyadmin.net

--

-- 主机: localhost

-- 生成日期: 2011 年 01 月 08 日 06:22

-- 服务器版本: 5.0.18

-- PHP 版本: 5.2.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;

/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;

/*!40101 SET @[email protected]@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

--

-- 数据库: `test`

--

-- --------------------------------------------------------

--

-- 表的结构 `fruit`

--

CREATE TABLE IF NOT EXISTS `fruit` (

`id` int(11) unsigned NOT NULL auto_increment,

`name` varchar(256) NOT NULL,

`order` int(4) NOT NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=7 ;

--

-- 导出表中的数据 `fruit`

--

INSERT INTO `fruit` (`id`, `name`, `order`) VALUES

(1, ‘苹果‘, 5),

(2, ‘西瓜‘, 2),

(3, ‘菠萝‘, 1),

(4, ‘桃子‘, 4),

(5, ‘樱桃‘, 3),

(6, ‘桔子‘, 6);

这篇文章是受他人的启发,自己抽空参照网友的文章写的,大家多提意见,原文本空间也顺便转了一下,在它的基础上改进了一些东西,希望大家喜欢,谢谢~

时间: 2024-10-25 18:20:26

php sortable 动态排序的相关文章

函数指针、回调、动态排序、返回函数指针

1.函数指针定义及初始化: int (*p)(int,int)=NULL; p=maxValue;//将函数maxValue的地址传给p 或 (*p)=maxValue; 2.函数回调: int getValue(int a,int b,int (*p)(int,int));//函数指针作为getValue的参数 函数指针指向函数可变 3.动态排序(排序条件多变) 将决定排序方式的条件封装成函数,然后再回调 typedef BOOL (*P_Fun)(int,int);//头文件#include

解析---DragGridView长按动态排序

曾经项目需求,要实现一个类似以前ZAKER新闻阅读的DragGridView特效.不过,没要求实现横向跨屏,而是竖向跨屏.网上资源也很多,有实现横向跨屏的,可是没有找到竖向的.后来只好结合人家代码,修改一二. 贴代码! /** * @blog http://blog.csdn.net/xiaanming * * @author xiaanming&&wangxuanao * */ public class DragGridView extends GridView { /** * Drag

实现动态排序

/// <summary> /// 实现动态排序 /// 来源博客园的一个大神,具体实现原理是利用实体和排序字段自动生成一个表达式 /// 再利用IQuerable的方法实现 /// 有一部分比较像微软的源码 ZhangQC 2016.10.20 /// </summary> public static class DynamicOrder { #region Private 表达式树 /// <summary> /// 构建表达式树 结果类似于 j=>j.Nam

ActiveReports 报表应用教程 (9)---交互式报表之动态排序

原文:ActiveReports 报表应用教程 (9)---交互式报表之动态排序 在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据. 1.创建报表文件 在应用程序中创建一个名为 rptProductListForSort.rdlx 的 ActiveReports 报表文件,使用的项目模板为 ActiveReports 页面报表,创建完成之后从 V

利用动态排序,对学生结构体的各类信息进行排序

#import <Foundation/Foundation.h> //创建一个学生变量 typedef struct student{ char name[20];  //姓名 int  age;       //年龄 float  weight;  //体重 float  height;  //身高 float  score;   //分数 }Stu; //为什么使用动态排序,动态排序的好处:所有的排序函数if语句之后的比较条件不一样,其余的所有代码都是相同的,把相同的内容放在一个函数里,

Linq To Entities中的动态排序

换了工作有一个月了,一样的工作.一样的代码.一样的体力活仍就-- Linq To Entityes 也是不新玩意了,近半年来也一直与之打交道,但一直也没对其深究过.今天新加的功能要对所有列支持排序,这也不是什么高难度的工作了,对与TSQL来说是写过几百遍了,但在Linq To Enitities中有点小恶心. Linq To Entityes中的对象是个Queryable类型的,Queryable.OrderBy()方法的参数是一个Lamdba source.OrderBy(t=>t.ID).S

使用Linq动态排序

Linq排序很方便,如果能动态创建Expression再排序就更方便了. 正序还是倒序排列 var order = typeof(Enumerable).GetMember(direction == ListSortDirection.Ascending ? "OrderBy" : "OrderByDescending") .First() as MethodInfo;order = order.MakeGenericMethod(typeof(T), typeof

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序

首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为sort这个名称填写错误,会导致后台一直无法获取datagrid的排序字段 本来是没有这一讲的,为了使20行的代码精简成2行,我查阅了一些资料,借鉴了一些大神的建议,首先感谢第八讲中,11楼@nyth和15楼@红颜醉丶帝的建议投递,每一次的的排序要都一个判断这的确很麻烦,我们利用反射来解决这个问题. 先看原来的代码 //排序 if (pager.order == "desc") { switch (pager

Ax Grid 的显示根据用户的需求动态排序。

点击方向按钮上下移动记录. 设计思路. 以临时表TmpTable1举例. 在表中加一个real类型字段(eg:ColumnSeq)用于排序,给表建一个ColumnSeq字段的索引ColumnSeqIdx. 在Form的数据源中设置index属性:ColumnSeqIdx. 这样Grid显示数据就会根据ColumnSeq排序. 在form init 临时表数据时,ColumnSeq为一个累加值. 当点击上移记录按钮的时候,倒序TmpTable1的ColumnSeq,大于当前行ColumnSeq,取