关于jqgrid的问题
一。本地测试可以显示数据库数据,上传到服务器上就显示不了,sql都在phpmyadmin测试过,可以用的,请问怎么查是什么原因。二。编码问题,页面本来编码为GB的,我把sale_list.html和do.php用记事本转成utf-8后,本地测试jqgrid就显示不了数据。do.php源码<?php
include_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;
?>

解决方案 »

  1.   

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

  2.   

    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>