2010-06-09 8 views
0

J'essaie de trouver du travail ce code:option de recherche: jqGrid + PHP

$("#list").jqGrid({ 
        url: 'employers.php', 
        datatype: 'json', 
        mtype: 'POST', 
        postData: {c : "", n: "", a: "", d: "", t: "", e: "", f: "", g: $('#selectSalary').value(), p: "", call: "report"}, 
        colNames: ['ID','Name', 'Surname', 'Department', 'E-mail','Phone', 'Title in'], 
        colModel: [ 
         { name:'rows.id',    index: 'id', search:true, jsonmap: 'id', width: 50, align: 'left', sortable:true}, 
         { name:'rows.name',    index: 'name', jsonmap: 'name', width: 150, align: 'left'}, 
         { name:'rows.surname',    index: 'surname', jsonmap: 'surname', width: 240, align: 'left'}, 
         { name:'rows.department',    index: 'department', jsonmap: 'department', width: 330, align: 'left'}, 
         { name:'rows.email',     index: 'email',  jsonmap: 'email',width: 200, align: 'left'}, 
         { name:'rows.phone',    index: 'phone', jsonmap: 'phone', width: 170, align: 'left'}, 
         { name:'rows.title', index: 'title', jsonmap: 'title',width: 120, align: 'left'}], 

        pager: '#pager', 
        rowNum: 8, 
        autowidth: true, 
        rowList: [10, 20], 
        sortname: 'id', 
        sortorder: 'asc', 
        viewrecords: true, 
        caption: "Employer's Salary", 
        jsonReader : { 
            root: "rows", 
            repeatitems: false 
            }, 
        height: 350, 
        width: 900 
      }); 


$("#list").jqGrid('navGrid','#pager',{search:true, searchtext: "search",edit:false,add:false,del:false}); 

Le HMTL J'utilise:

<div id="report"> 
     <table id="list"></table> 
     <div id="pager"> 
     </div> 
<div> 

Et le code PHP:

$total_pages = 0; 
$limit=10; 
//Using QCubed, a PHP Framework and PDO 
$count = Employers::CountAll(); 
if($count> 0) 
$total_pages= ceil($count/$limit); 
else 
$total_pages=0; 
$cnx = new PDO("mysql:host=localhost;dbname=appsms","root",""); 
$rows = array(); 
$strQuery="select id, name, surname, department, phone, email, title from Employer join Titles on " . 
          " (employers.title = Titles.id) and (employers.g = '" .$this->g . 
          "') order by id;"; 

$stmt = $cnx->prepare($strQuery); 
$stmt->execute(array("report")); 
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
$response->page = 1; 
$response->total= $total_pages; 
$response->records = sizeof($rows); 

$i=0; 
foreach($rows as $result){ 
$response->rows[$i] = $result; 
$i++; 
} 


echo json_encode($response); 

Il charge la requête depuis PHP mais l'option de recherche ne fonctionne pas non plus sur la fonction de tri de la colonne "cedula". Ce que je dois faire?. Merci d'avance.

Répondre

1

Je peux voir dans votre code de serveur 'order by id' utilisé indepand sur les valeurs des paramètres sidx et sord (voir http://www.trirand.com/jqgridwiki/doku.php?id=wiki:first_grid comme exemple de code de serveur correct).

Le rôle principal que vous devez prendre en conseriration, si vous utilisez datatype: 'json' dans les paramètres supplémentaires jqGrid comme sidx, sord, _search seront envoyés au serveur. La même chose fonctionne l'option de recherche (filtrage des données) voir http://www.trirand.com/jqgridwiki/doku.php?id=wiki:singe_searching pour plus d'informations.