关于后台数据库怎么填充到 jqGrid 表格

jiaosu348 2015-08-04 05:01:44
我有问题想请教各位,我现在在使用jqGrid插件,因为是新手,有个问题困扰到了我。我现在需要把后台的数据填充到jqGrid表格里,也已经把数据通过 ajaxReturn(json_encode($info))传到了html这里(php后台传输到html),接下来我该怎么获取这些数据呢?jqGrid有个数据地址参数的设置,是url,但是我这里已经传到了html,我该怎么把这数据填充进去呢?补充一下,后台数据都是根据前端html设置了条件,比如日期,然后把日期post到php,然后通过日期选项条件,查询选择出来的数据,所以, 如果不用ajaxReturn(json_encode($info))返回到html,那么我可以用什么方法获取数据并填充呢?望懂者指点!
...全文
529 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haos9527 2017-08-09
  • 打赏
  • 举报
回复
受教了 有用
Go 旅城通票 2017-08-09
  • 打赏
  • 举报
回复
豪情 2015-08-07
  • 打赏
  • 举报
回复
可以参考jqGrid官网提供的例子来填充数据,遇到问题不要着急或紧张,找最原始的出处。 寻找路径:jqGrid->Loading Data -> Json Data

<table id="list2"></table>
<div id="pager2"></div>
Java Scrpt code

...
jQuery("#list2").jqGrid({
   	url:'server.php?q=2',
	datatype: "json",
   	colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
   	colModel:[
   		{name:'id',index:'id', width:55},
   		{name:'invdate',index:'invdate', width:90},
   		{name:'name',index:'name asc, invdate', width:100},
   		{name:'amount',index:'amount', width:80, align:"right"},
   		{name:'tax',index:'tax', width:80, align:"right"},		
   		{name:'total',index:'total', width:80,align:"right"},		
   		{name:'note',index:'note', width:150, sortable:false}		
   	],
   	rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager2',
   	sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
    caption:"JSON Example"
});
jQuery("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false});
PHP with MySQL

...
$page = $_GET['page']; // get the requested page
$limit = $_GET['rows']; // get how many rows we want to have into the grid
$sidx = $_GET['sidx']; // get index row - i.e. user click to sort
$sord = $_GET['sord']; // get the direction
if(!$sidx) $sidx =1;
// connect to the database
$db = mysql_connect($dbhost, $dbuser, $dbpassword)
or die("Connection Error: " . mysql_error());

mysql_select_db($database) or die("Error conecting to db.");
$result = mysql_query("SELECT COUNT(*) AS count FROM invheader a, clients b WHERE a.client_id=b.client_id");
$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; // do not put $limit*($page - 1)
$SQL = "SELECT a.id, a.invdate, b.name, a.amount,a.tax,a.total,a.note FROM invheader a, clients b WHERE a.client_id=b.client_id 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];
    $responce->rows[$i]['cell']=array($row[id],$row[invdate],$row[name],$row[amount],$row[tax],$row[total],$row[note]);
    $i++;
}        
echo json_encode($responce);
jiaosu348 2015-08-07
  • 打赏
  • 举报
回复
感谢版主回复,问题之前已经解决了,我也把解决方法说明一下,希望帮助更多的朋友!如图,,我没有纠结url地址的问题,没有对这个参数进行设置,图中,我把js处需要给到php的数据“post(“http//……”)过去,然后php处通过 “ajaxReturn(json_encode($info))”会返回数据到js,通过 “ if(JSON.parse(data)!==null) ”判断有数据返回时,则通过“ mydata = JSON.parse(data), ”把数据直接装到mydata ,然后关键的设置是 “ 【datatype: "local" , data : mydata, 】” ,其它按照官方例程来,最后可以显示了~初次发帖回帖,排版不好或者有些表达很通俗,没有专业词汇,请见谅!

87,885

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧