Jqgrid

Тема в разделе "Другие", создана пользователем Zayac, 15 дек 2010.

  1. Zayac

    Zayac Гость

    Привет всем!!! Нуждаюсь в помощи. На сайте пытаюсь создать таблицу для админа, где можно редактировать пользователей. Использую компонент jqGrid. Ниже изложен файл admin.html, который описывает сам грид и вызывает другие файлы на исполнение: getdata.php и changeData.php.

    Код (PHP):
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>"Администрирование: работа с пользователями"</title>
    <link rel="stylesheet" type="text/css" media="screen" href="css/ui-lightness/jquery-ui-1.8.custom.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
    <script type="text/javascript" language="JavaScript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" language="JavaScript" src="js/jquery-ui-1.8.custom.min.js"></script>
    <script type="text/javascript" language="JavaScript" src="js/i18n/grid.locale-ru.js"></script>
    <script type="text/javascript" language="JavaScript" src="js/jquery.jqGrid.min.js"></script>
    <script type="text/javascript" language="JavaScript" src="js/jquery.autocomplete-min.js" ></script>
    <script type="text/javascript" language="JavaScript">
    $(document).ready(function(){
    $('#words').jqGrid({
    scroll: true,
    scrollrows: true,
    url: 'getdata.php',
    datatype: 'json',
    mtype: 'POST',
    colNames:['#', 'Логин', 'Пароль', 'Уровень доступа'],
    colModel :[
    {name:'id', index:'id', width:30}
    ,{name:'name', index:'name', width:100, align:'left', editable:true, edittype:"text"}
    ,{name:'password', index:'password', width:100,editable:true, edittype:"text"}
    ,{name:'access', index:'access', width:150, align:'left',editable:true, edittype:"text"}
    ],
    pager: $('#wordsPager'),
    rowNum: 10,
    rowList: [10,20,30],
    sortname: 'id',
    sortorder: 'asc',
    viewrecords: true,
    imgpath: 'themes/basic/images',
    caption: 'Данные пользователей',
    /*
    * Не забываем указать, что в качестве ответа сервера мы получим
    * ассоциативный массив, где ключ - это имя поля,
    * а значение по этому ключу - содержимое.
    */

    jsonReader: {
    repeatitems: false
    },
    editurl: 'changeData.php',
    }).navGrid('#wordsPager',{edit:true, add:true, del:true});


    })
    </script>
    </head>
    <body>
    <table id="words" class="scroll"></table>
    <div id="wordsPager" class="scroll" style="text-align:center;"></div>
    </body>

    </html>




    далее getdata.php



    Код (PHP):
    <?php
    try
    {
    //читаем параметры
    $curPage = $_POST['page'];
    $rowsPerPage = $_POST['rows'];
    $sortingField = $_POST['sidx'];
    $sortingOrder = $_POST['sord'];

    //подключаемся к базе
    $dbh = new PDO('mysql:host=localhost;dbname=users', 'root', '');
    //указываем, мы хотим использовать utf8
    $dbh->exec('SET CHARACTER SET utf8');

    //определяем количество записей в таблице
    $rows = $dbh->query('SELECT COUNT(id) AS count FROM user');
    $totalRows = $rows->fetch(PDO::FETCH_ASSOC);

    $firstRowIndex = $curPage * $rowsPerPage - $rowsPerPage;
    //получаем список пользователей из базы
    $res = $dbh->query('SELECT * FROM user ORDER BY '.$sortingField.' '.$sortingOrder.' LIMIT '.$firstRowIndex.', '.$rowsPerPage);

    //сохраняем номер текущей страницы, общее количество страниц и общее количество записей
    $response->page = $curPage;
    $response->total = ceil($totalRows['count'] / $rowsPerPage);
    $response->records = $totalRows['count'];

    $i=0;
    while($row = $res->fetch(PDO::FETCH_ASSOC)) {
    $response->rows[$i]['id']=$row['id'];
    if ($row['access']==0) $lev='Администратор';
    else $lev='Пользователь';
    $response->rows[$i]['cell']=array($row['id'], $row['name'], $row['password'], $lev);
    $i++;
    }
    echo json_encode($response);
    }
    catch (PDOException $e)
    {
    echo 'Database error: '.$e->getMessage();
    }

    // end of getdata.php
    ?>
    проблема в том, что данные в гриде не отображаются, но в грид добавляется ровно столько строчек, сколько записей в таблице.
     

Поделиться этой страницей