ホームページ  >  記事  >  バックエンド開発  >  jqgridに関する質問

jqgridに関する質問

WBOY
WBOYオリジナル
2016-06-23 14:05:23796ブラウズ

jqgridに関する質問
1.ローカルテストではデータベースのデータが表示できるのですが、phpmyadminでSQLをテストして使用できるようになりました。原因を確認するにはどうすればよいですか?

2つ。エンコードの問題があります。ページは元々 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 $limit;
echo $sidx;
計算する?

echo $page;

echo $limit;

echo $sidx;
最後の 2 つの変更が何を意味するかわからないので、
sale_list.html を出力したい

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。