Jqgrid

  • Автор темы Zayac
  • Дата начала
Z

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
?>

проблема в том, что данные в гриде не отображаются, но в грид добавляется ровно столько строчек, сколько записей в таблице.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!