Jquery SQL Server、jQgrid:寻呼机和搜索工具不工作

Jquery SQL Server、jQgrid:寻呼机和搜索工具不工作,jquery,sql-server-2008,jqgrid,Jquery,Sql Server 2008,Jqgrid,一般来说,我对jQuery和Javascript非常陌生,所以我在理解它的工作原理时遇到了很多困难。我正在使用jQgrid来显示SQL Server中运行的数据库中的某些行,我已经能够显示表中的信息,并且能够降序或升序排序,甚至可以显示更多记录。 唯一不起作用的是分页和搜索工具,我真的不明白为什么它不起作用,因为我知道只要它加载数据,它在本地处理数据,它就不必再向服务器发出任何请求。可能是什么?另外,我做了研究,发现有一个变量叫做“editurl”,我不太明白它的用途 这是我的javascrip

一般来说,我对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);
        ?>
editurl是您提供的URL,用于为jqGrid的内联编辑功能创建、更新和删除函数。i、 e.当您在网格上编辑记录时,请求将发送到editurl进行处理

您必须在查询中使用$page变量来获取请求的页面并将其数据作为JSON返回。请记住,对于每个页面,jqGrid都会要求服务器返回该页面,但在所有情况下,您只返回第一个页面

您的查询可能如下所示:

$SQL = "SELECT TOP $limit * FROM
(SELECT ROW_NUMBER()  OVER ( ORDER BY $sidx $sord)
as id_column, * FROM Publi_vwAdmgrPedidos) 
as table1 where table1.id_column >  ($page-1)*$limit ";
免责声明:我没有检查该查询,请确保它没有错误

编辑:

您可以在URL中检查这些参数以获取搜索条件。由于您没有使用本地数据,因此必须从数据库中进行自我搜索

searchField
searchString
searchOper

非常感谢,我没有注意到,其他人帮助我构建了这个查询,因为它最初是为MySQL编写的。你知道为什么搜索功能也不起作用吗?你想进行本地搜索还是将搜索请求发布到服务器上?最好是向服务器发出实际请求,以获得最准确的结果。我在jqGrid文档搜索中发现了这一点:搜索指示符默认值_search我想我可以在我的php,当我做选择以及