views:

106

answers:

1

Hi, I'm trying to get work this code:

$("#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});

The HMTL I'm using:

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

And the PHP code:

$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);

It loads the query from PHP but the search option doesn't work neither the sorting function on "cedula"'s column. What I need to do?. Thanks in advance.

+1  A: 

I can see in your server code 'order by id' used indepand on the values of sidx and sord parameters (see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:first_grid as an example of correct server code).

The main role which you have to take in conseriration, if you use datatype: 'json' in the jqGrid additional parameters like sidx, sord, _search will be send to the server. The same works this the search option (filtering of data) see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:singe_searching for more information.

Oleg