总的来说,我对 jQuery 和 Javascript 非常陌生,所以我很难理解它是如何工作的。我正在使用 jQgrid 来显示 SQL Server 中运行的数据库中的某些行,我已经能够显示表中的信息,并且能够降序或升序排序,甚至显示更多记录。唯一不工作的是分页和搜索工具,我真的不明白为什么它不工作,因为我理解一旦它加载数据,它在本地操作它并且它不需要做对服务器的任何更多请求。会是什么呢?另外,我进行了研究,发现有一个名为“editurl”的变量,我不太了解它的用途。
这是我的 JavaScript 代码
jQuery(document).ready(function() {
var myGrid = $("#mygrid").jqGrid({
url:'admanagerjson.php',
datatype: 'json',
mtype: 'GET',
colModel: [
{name:'Sucursal', index:'Sucursal', width:20},
{name:'Pedido', index:'Pedido', width:50},
{name:'PedidoAdpro', index:'PedidoAdpro', width:50},
{name:'FechaPedido', index:'FechaPedido', width:80, align:'right'},
{name:'Cancelado', index:'Cancelado', width:20},
{name:'FECHA_ACT', index:'FECHA_ACT', width:80, align:'right'},
{name:'FechaEntrega', index:'FechaEntrega', width:80, align:'right'},
{name:'PorcDesc', index:'PorcDesc', width:50, align:'right'},
{name:'PC', index:'PC', width:50, sortable:false},
{name:'Cliente', index:'Cliente', width:50, align:'right'},
{name:'Nombre', index:'Nombre', width:150, align:'right'},
{name:'ComoPaga', index:'ComoPaga', width:80, align:'right'},
{name:'Articulo', index:'Articulo', width:80, sortable:false},
{name:'Descripcion', index:'Descripcion', width:80, sortable:false},
{name:'logo', index:'logo', width:80, sortable:false},
{name:'linea', index:'linea', width:80, sortable:false},
{name:'TotalArtPsos', index:'TotalArtPsos', width:80, sortable:false},
{name:'PorcDesc', index:'PorcDesc', width:80, sortable:false},
{name:'Cantidad', index:'Precio', width:80, sortable:false},
{name:'Precio', index:'Precio', width:80, sortable:false},
{name:'PComision', index:'PComision', width:80, sortable:false},
{name:'Comision', index:'Comision', width:80, sortable:false},
{name:'Asesor', index:'Asesor', width:80, sortable:false},
{name:'Equipo', index:'Equipo', width:80, sortable:false},
{name:'Refactura', index:'Refactura', width:80, sortable:false},
{name:'quincena', index:'quincena', width:80, sortable:false},
{name:'mes', index:'mes', width:80, sortable:false},
{name:'anio', index:'anio', width:80, sortable:false},
{name:'LineNum', index:'LineNum', width:80, sortable:false},
{name:'SlpCode', index:'SlpCode', width:80, sortable:false},
{name:'codigoLinea', index:'codigoLinea', width:80, sortable:false},
{name:'U_Tipo', index:'U_Tipo', width:80, sortable:false},
{name:'ModeloNegocio', index:'ModeloNegocio', width:80, sortable:false},
{name:'EstatusAsesor', index:'EstatusAsesor', width:80, sortable:false},
{name:'EstatusPedido', index:'EstatusPedido', width:80, sortable:false},
{name:'U_Sucursal', index:'U_Sucursal', width:80, sortable:false}
],
pager: '#mypager',
rowNum: 10,
rowList: [10, 20, 500],
viewrecords: true,
autowidth: true,
sortname: 'Pedido',
sortorder: 'desc'
});
myGrid.jqGrid('navGrid','#mypager',{edit:false,add:false,del:false,search:true});
});`
这是我的 php:
$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)*/
if(!$sidx) $sidx =1;
// connect to the database
$db = odbc_connect($dsn, $dbuser, $dbpassword) or die("Connection Error: " . odbc_error());
$result = odbc_exec($db, "SELECT COUNT(*) AS count FROM Publi_vwAdmgrPedidos");
$row = odbc_fetch_array($result);
$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)
if($start <0) $start = 0;
$SQL = "SELECT TOP $limit * FROM Publi_vwAdmgrPedidos ORDER BY $sidx $sord";
$result = odbc_exec($db, $SQL) or die("Couldn't execute query.".odbc_error());
$response->page = $page;
$response->total = $total_pages;
$response->records = $count;
$i=0;
while($row = odbc_fetch_array($result)) {
$response->rows[$i]['id']=$row['Pedido'];
$response->rows[$i]['cell']=array($row['Sucursal'],
$row['Pedido'],
$row['PedidoAdpro'],
$row['FechaPedido'],
$row['Cancelado'],
$row['FECHA_ACT'],
$row['FechaEntrega'],
$row['PorcDes'],
$row['PC'],
$row['Cliente'],
$row['Nombre'],
$row['ComoPaga'],
$row['Articulo'],
$row['Descripcion'],
$row['logo'],
$row['linea'],
$row['TotarArtPsos'],
$row['PorcDesc'],
$row['Cantidad'],
$row['Precio'],
$row['PComision'],
$row['Comision'],
$row['Asesor'],
$row['Equipo'],
$row['Refactura'],
$row['quincena'],
$row['mes'],
$row['anio'],
$row['LineNum'],
$row['SlpCode'],
$row['codigoLinea'],
$row['U_Tipo'],
$row['ModeloNegocio'],
$row['EstatusAsesor'],
$row['EstatusPedido'],
$row['U_Sucursal']);
$i++;
}
echo json_encode($response);
?>