php mysql grid_基于PHP和Mysql相结合使用jqGrid读取数据并显示

我们在建立一个可供查询编号和名称的两个输入框,以及“新增”和“删除”按钮,新增和删除功能在接下来的文章中会专门讲解。此外xhtml中还有一个放置表格的#list(jqGrid生成表格)以及分页条#pager。

Javascript

关于jqGrid相关选项设置请参照:。

此外,当我们点击“查询”按钮的时候,向后台PHP程序发送查询关键字请求,jqGrid根据服务端返回的结果进行响应,请看代码。

PHP?action=list",postData:{'title':title,'sn':sn},//发送数据

page:1

}).trigger("reloadGrid"); //重新载入

});

});

在上两段JS代码代码中,可以看到读取列表和查询业务请求的后台URL地址都是do.PHP?action=list,后台PHP代码负责根据条件查询MysqL数据表中的数据,并将数据以JSON格式返回给前端jqGrid,请看PHP代码:

$where = '';

$title = uniDecode($_GET['title'],'utf-8'); //获取查询关键字:名称

if(!empty($title))

$where .= " and title like '%".$title."%'";

$sn = uniDecode($_GET['sn'],'utf-8'); //获取查询关键字:编号

if(!empty($sn))

$where .= " and sn='$sn'";

//执行SQL

$result = mysql_query("SELECT COUNT() AS count FROM products where deleted=0".$where);

$row = mysql_fetch_array($result,MYSQL_ASSOC);

$count = $row['count']; //获取总记录数

//根据记录数分页

if ($count > 0) {

$total_pages = ceil($count / $limit);

} else {

$total_pages = 0;

}

if ($page > $total_pages)

$page = $total_pages;

$start = $limit $page - $limit;

if ($start < 0 ) $start = 0;

//执行分页SQL

$SQL = "SELECT * FROM products WHERE deleted=0".$where." ORDER BY $sidx $sord

LIMIT $start,$limit";

$result = mysql_query($SQL) or die("Couldn t execute query." . mysql_error());

$responce->page = $page; //当前页

$responce->total = $total_pages; //总页数

$responce->records = $count; //总记录数

$i = 0;

//循环读取数据

while ($row = MysqL_fetch_array($result,MysqL_ASSOC)) {

$responce->rows[$i]['id'] = $row[id];

$opt = "修改";

$responce->rows[$i]['cell'] = array (

$row['sn'],$row['title'],$row['size'],$row['os'],$row['charge'],$row['price'],$opt

);

$i++;

}

echo json_encode($responce); //输出JSON数据

break;

case '' :

echo 'Bad request.';

break;

}

值得一提的是,我们在进行中文查询时,即输入中文关键字进行查询时,需要用js进行escape编码,然后PHP接收中文关键字时相应的进行解码,否则会出现无法识别中文字符串的现象,本例中采用uniDecode函数进行解码,代码一并奉上:

查询的中文字符串

function uniDecode($str,$charcode) {

$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",toUtf8,$str);

return mb_convert_encoding($text,$charcode,'utf-8');

}

function toUtf8($ar) {

foreach ($ar as $val) {

$val = intval(substr($val,2),16);

if ($val < 0x7F) { // 0000-007F

$c .= chr($val);

}

elseif ($val < 0x800) { // 0080-0800

$c .= chr(0xC0 | ($val / 64));

$c .= chr(0x80 | ($val % 64));

} else { // 0800-FFFF

$c .= chr(0xE0 | (($val / 64) / 64));

$c .= chr(0x80 | (($val / 64) % 64));

$c .= chr(0x80 | ($val % 64));

}

}

return $c;

}

以上所述就是本文给大家介绍的基于PHP和MysqL相结合使用jqGrid读取数据并显示的全部内容,关于jqgrid表格相关应用会持续给大家介绍,敬请关注。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

3fe919988456ceb40df2d9bd2e5626a9.png

猜你在找的JavaScript相关文章

事件处理 【onClick】单击事件、【onMouseOver】鼠标经过事件、【onMouseOut】鼠标移出事件、【onChange】文本内容改变事件、【onSelect】文本被框选事件、【onFo

先说明一下为什么要写这个,因为最近在面试,面试的时候面试官问了这个问题,当时是真的没有答上来,回来之后自己考虑了一下,现在给大家分享 要求如下: 重写js push函数,使其能够在push的同时打印出

所有对象都是具有toLocalString(), toString(), valueOf()三种方法的,此篇博客主要是讲述其在Array引用类型上的使用。 基本使用 调用valueOf()返回的是数组

本篇博客主要来整合一下JS继承的六种方式及其优缺点。首先我们提供一个父类: // 父类 function Person(name) { this.name = name; this.showName

一、背景 最近在写一个批量上传的 node 脚本,其实大家可以想到批量上传带来的接口性能问题,如果将需要上传的文件通过多个异步请求同时上传的话,服务器方面应该是吃不消的,所以这里提出一个 promis

在 Python 中,将字符串转为整型变量的函数是 int() ,直接使用 int(&quot;123&quot;)就可以得到 123的输出结果,这样可以比较快速的得到我们想要的结果,

一、前言 ReactColor 是一个优秀的 React 颜色选择器组件,官方给了多种布局供开发者选择。 笔者常用的主题为 Sketch,这种主题涵盖了颜色面板、推荐色块、RGB颜色输入等功能,比较完

一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,par

前言:为什么要学习这个方法 遇到这个方法主要是最近在阅读redux,koa 原理 等多次遇到这个方法,为了更好地理解框架原理,于是深入学习了一下compose的实现。 然后也发现这属于函数式编程的东西

前言 Truthy 不等于 ture,他是指是在Boolean上下文中转换后的值为真的值。我的理解是,在javascript中所有表达式为true的值。同理Falsy指的是在javascript中所有

比如下面的代码,从服务端请求回来的订单数据如下,需要进行以下处理1.根据 status 进行对应值得显示(0-进行中,1-已完成,2-订单异常)2.把 startTime 由时间戳显示成 yyyy-m

前言 如下图: AMD与CMD的主要区别: 1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值