0

私は一般的にjQueryとJavascriptに非常に慣れていないので、それがどのように機能するかを理解しようとして多くの問題を抱えています. SQL Server で実行されているデータベースから特定の行を表示するために jQgrid を使用しています。既にテーブルから情報を表示でき、降順または昇順で並べ替えたり、さらにレコードを表示したりすることもできます。機能していないのはページネーションと検索ツールだけです。データをロードするとすぐに理解できるので、それが機能しない理由が本当にわかりません。ローカルで操作する必要はありません。サーバーへのこれ以上のリクエスト。どうなり得るか?また、調査を行ったところ、「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);
        ?>
4

1 に答える 1

1

これediturlは、jqGrid のインライン編集機能の作成、更新、削除機能を実行する、指定した URL です。つまり、グリッドでレコードを編集すると、リクエストが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 でこれらのパラメーターを確認できます。DBから自分で検索する必要があります(ローカルデータを使用していないため)

searchField
searchString
searchOper
于 2013-03-22T05:09:34.723 に答える