>백엔드 개발 >PHP 튜토리얼 >关于jqgrid的问题

关于jqgrid的问题

WBOY
WBOY원래의
2016-06-23 14:05:23844검색

关于jqgrid的问题
一。本地测试可以显示数据库数据,上传到服务器上就显示不了,sql都在phpmyadmin测试过,可以用的,请问怎么查是什么原因。

二。编码问题,页面本来编码为GB的,我把sale_list.html和do.php用记事本转成utf-8后,本地测试jqgrid就显示不了数据。

do.php源码

<?phpinclude_once ("conn.php");$action = $_GET['action'];switch ($action) {	case 'list' : //列表		$page = $_GET['page'];		$limit = $_GET['rows'];		$sidx = $_GET['sidx'];		$sord = $_GET['sord'];//		$page = 1;//		$limit = 12;//		$sidx = 'id';//		$sord = 'asc';		if (!$sidx)			$sidx = 1;        $where = '';        $product_name = uniDecode($_GET['product_name'],'utf-8');        if(!empty($product_name))            $where .= " and `product-name` like '%".$product_name."%'";        $order_id = uniDecode($_GET['order_id'],'utf-8');        if(!empty($order_id))           // $where .= " and order_id='$order_id'";             $where .= " and `order_id` like '%".$order_id."%'";		//$result = mysql_query("SELECT COUNT(*) AS count FROM products where deleted=0".$where);		$result = mysql_query("SELECT COUNT(*) AS count FROM `sale_orders` WHERE `number`>0".$where);		$row = mysql_fetch_array($result, MYSQL_ASSOC);		$count = $row['count'];		//echo $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 = "SELECT * FROM `sale_orders` WHERE `number`>0".$where." ORDER BY $sidx $sord LIMIT $start , $limit";		$result = mysql_query($SQL);		$responce->page = $page;		$responce->total = $total_pages;		$responce->records = $count;		$i = 0;		while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {			$responce->rows[$i]['order_id'] = $row['order_id'];			$opt = "<a href='#'>修改</a>";			$responce->rows[$i]['cell'] = array (				$row['order_id'],				$row['buyer-name'],				$row['jj_sku'],				$row['sku'],				$row['product-name'],				$row['quantity-purchased'],				$opt			);			$i++;		}		//print_r($responce);		echo json_encode($responce);		break;	case 'add' : //新增		$pro_title = htmlspecialchars(stripslashes(trim($_POST['pro_title'])));		$pro_sn = htmlspecialchars(stripslashes(trim($_POST['pro_sn'])));		$size = htmlspecialchars(stripslashes(trim($_POST['size'])));		$os = htmlspecialchars(stripslashes(trim($_POST['os'])));		$charge = htmlspecialchars(stripslashes(trim($_POST['charge'])));		$price = htmlspecialchars(stripslashes(trim($_POST['price'])));		if (mb_strlen($pro_title) < 1)			die("产品名称不能为空");		$addtime = date('Y-m-d H:i:s');		$query = mysql_query("insert into products(sn,title,size,os,charge,price,addtime)values('$pro_sn','$pro_title','$size','$os','$charge','$price','$addtime')");		if (mysql_affected_rows($conn) != 1) {			die("操作失败");		} else {			echo '1';		}		break;	case 'del' : //删除		$ids = $_POST['ids'];		delAllSelect($ids, $conn);		break;	case '' :		echo 'Bad request.';		break;}//批量删除操作function delAllSelect($ids, $conn) {	if (empty ($ids))		die("0");	//mysql_query("update products set deleted=1 where id in($ids)");		mysql_query("delete FROM `sale_orders` WHERE order_id='$ids'");	if (mysql_affected_rows($conn)) {		echo $ids;	} else {		die("0");	}}//处理接收jqGrid提交查询的中文字符串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;}echo $page;echo $limit;echo $sidx;echo $sord;?>


回复讨论(解决方案)

楼主的数据库编码是什么呀,必须和页面统一哦。

qGrid 是一个用来显示网格数据的jQuery插件
传递给他的数据应该是 json,你就简单的
echo $page;
echo $limit;
echo $sidx;
echo $sord;
算什么?

echo $page;
echo $limit;
echo $sidx;
echo $sord;
因为后面两个变更我不知道什么意思,所以想输出一下看看
sale_list.html

<!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=utf-8" /><meta name="keywords" content="jNotify, jquery插件" /><meta name="description" content="Helloweba演示平台,演示XHTML、CSS、jquery、PHP案例和示例" /><title>jqGrid:强大的表格插件的应用-Helloweba演示平台</title><!--<link rel="stylesheet" type="text/css" href="/css/main.css" />--><link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.2.custom.css" /><link rel="stylesheet" type="text/css" href="css/ui.jqgrid.css" /><link rel="stylesheet" type="text/css" href="css/style.css" /><script src="js/jquery.js" type="text/javascript"></script><script src="js/i18n/grid.locale-cn.js" type="text/javascript"></script><script src="js/jquery.jqGrid.min.js" type="text/javascript"></script><script src="js/jquery.fancybox.js" type="text/javascript"></script><script src="js/jquery.message.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="css/fancybox.css" /><style type="text/css"><!--body {	background-color: #FFFFFF;}--></style></head><body><div id="main"><h2 class="top_title">销售订单列表</h2><div class="grid_table">     <div id="opt">        <div id="query">            <label>订单号:</label>   <input type="text" class="input" id="order_id" />            <label>产品名称:</label>  <input type="text" class="input" id="product_name" />            <input type="submit" class="btn" id="find_btn" value="查 询" />        </div>        <input type="button" class="btn" id="add_btn" value="新 增" />        <input type="button" class="btn" id="del_btn" value="删 除" />     </div>     <table id="list"></table>     <div id="pager"></div></div><div class="google_ad"><script type="text/javascript">google_ad_client = "ca-pub-7515443544894528";google_ad_slot = "3438097725";google_ad_width = 728;google_ad_height = 90;</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div></div><script type="text/javascript">$("#list").jqGrid({	url:'do.php?action=list',  //请求数据的url地址	datatype: "json",  //请求的数据类型   	colNames:['订单号','客户姓名','标准SKU','订单SKU','产品名称', '购买数量','操作'], //数据列名称(数组)   	colModel:[ //数据列各参数信息设置   		{name:'order_id',index:'order_id', editable:true, width:80,align:'center', title:false},   		{name:'buyer-name',index:'buyer-name', width:180, title:false},   		{name:'jj_sku',index:'jj_sku', width:120},		{name:'sku',index:'sku', width:120},   		{name:'product-name',index:'product-name', width:100,align:'center'},		{name:'quantity-purchased',index:'price', width:80,align:'center'},   		{name:'opt',index:'opt', width:80, sortable:false, align:'center'}						   	],   	rowNum:10, //每页显示记录数   	rowList:[10,20,30], //分页选项,可以下拉选择每页显示记录数   	pager: '#pager',  //表格数据关联的分页条,html元素	autowidth: true, //自动匹配宽度	height:275,   //设置高度	gridview:true, //加速显示    viewrecords: true,  //显示总记录数	multiselect: true,  //可多选,出现多选框	multiselectWidth: 25, //设置多选列宽度	sortable:true,  //可以排序	sortname: 'order_id',  //排序字段名    sortorder: "desc", //排序方式:倒序,本例中设置默认按id倒序排序	loadComplete:function(data){ //完成服务器请求后,回调函数		if(data.records==0){ //如果没有记录返回,追加提示信息,删除按钮不可用			$("p").appendTo($("#list")).addClass("nodata").html('找不到相关数据!');			$("#del_btn").attr("disabled",true);		}else{ //否则,删除提示,删除按钮可用			$("p.nodata").remove();			$("#del_btn").removeAttr("disabled");		}	} });$(function(){	$("#add_btn").click(function(){		$.fancybox({			'type':'ajax',			'href':'aaaddGrid.html'		});	});	$("#del_btn").click(function(){		var sels = $("#list").jqGrid('getGridParam','selarrrow');	    if(sels==""){		   alert('请选择要删除的项!')	    }else{		   if(confirm("您是否确认删除?")){		    $.ajax({              type: "POST",              url: "do.php?action=del",			  data: "ids="+sels,			  beforeSend: function() {                   $().message("正在请求...");              },			  error:function(){				   $().message("请求失败...");			  },              success: function(msg){				   if(msg!=0){					   var arr = msg.split(',');					   $.each(arr,function(i,n){							 if(arr[i]!=""){								 $("#list").jqGrid('delRowData',n); 							 }		               });		               $().message("已成功删除!");				   }else{					   $().message("操作失败!");				   }              }            });	       }	    }	});		$("#find_btn").click(function(){		var product_name = escape($("#product_name").val());	    var order_id = escape($("#order_id").val());	    $("#list").jqGrid('setGridParam',{			url:"do.php?action=list",			postData:{'product_name':product_name,'order_id':order_id},			page:1		}).trigger("reloadGrid");	});});</script></body></html>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.