· 8 years ago · Aug 25, 2018, 05:12 AM
1jqgrid. How to Add a new row using navigator add form?
2....
3<table id="list" class="scroll" width="700"></table>
4<div id="pager" class="scroll" style="text-align:center;"></div>
5<script type="text/javascript">
6jQuery(document).ready(function(){
7 var lastSel;
8 jQuery("#list").jqGrid({
9 url:'getdata.php',
10 editurl:'saverow.php',
11 datatype: 'json',
12 mtype: 'POST',
13 colNames:['#', 'SURNAME', 'FIRSTNAME', 'LASTNAME'],
14 colModel :[
15 {name:'id', index:'id', width:10, search:false}
16 ,{name:'surname', index:'surname', width:100, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
17 ,{name:'fname', index:'fname', width:100, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
18 ,{name:'lname', index:'lname', width:100, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
19 ],
20 pager: jQuery('#pager'),
21 rowNum:10,
22 rowList:[5,10,30],
23 sortname: 'id',
24 sortorder: "asc",
25 autowidth:false,
26 width:500,
27 viewrecords: true,
28 imgpath: 'themes/basic/images',
29 caption: '',
30
31 }).navGrid('#pager', {edit:true,add:true,del:false,refresh:false,search:true,view:false},
32 {closeAfterEdit:true, closeOnEscape:true }, // default settings for edit
33 {}, // default settings for add
34 {}, // delete instead that del:false we need this
35 {closeOnEscape:true, multipleSearch:true, closeAfterSearch:true}, // search options
36 {} /* view parameters*/
37 );
38});
39</script>
40...
41
42<?php require_once('dbdata.php');
43try {
44$curPage = $_POST['page'];
45$rowsPerPage = $_POST['rows'];
46$sortingField = $_POST['sidx'];
47$sortingOrder = $_POST['sord'];
48$dbh = new PDO('mysql:host='.$dbHost.';dbname='.$dbName, $dbUser, $dbPass);
49$dbh->exec('SET CHARACTER SET utf8');
50 $qWhere = '';
51if (isset($_POST['_search']) && $_POST['_search'] == 'true') {
52$allowedFields = array('surname', 'fname', 'lname');
53$allowedOperations = array('AND', 'OR');
54$searchData = json_decode($_POST['filters']);
55if (count($searchData->rules) > 10) {
56 throw new Exception('Cool hacker is here!!! ');
57}
58$qWhere = ' WHERE ';
59$firstElem = true;
60foreach ($searchData->rules as $rule) {
61 if (!$firstElem) {
62 if (in_array($searchData->groupOp, $allowedOperations)) {
63 $qWhere .= ' '.$searchData->groupOp.' ';
64 }else {
65 throw new Exception('Cool hacker is here!!! ');
66 }
67 }
68 else {
69 $firstElem = false;
70 }
71 if (in_array($rule->field, $allowedFields)) {
72 switch ($rule->op) {
73 case 'eq': $qWhere .= $rule->field.' = '.$dbh->quote($rule->data); break;
74 case 'ne': $qWhere .= $rule->field.' <> '.$dbh->quote($rule->data); break;
75 case 'bw': $qWhere .= $rule->field.' LIKE '.$dbh->quote($rule->data.'%'); break;
76 case 'cn': $qWhere .= $rule->field.' LIKE '.$dbh->quote('%'.$rule->data.'%'); break;
77 default: throw new Exception('Cool hacker is here!!! ');
78 }
79 }
80 else {
81 throw new Exception('Cool hacker is here!!! ');
82 }
83}
84}
85$rows = $dbh->query('SELECT COUNT(id) AS count FROM users');
86$totalRows = $rows->fetch(PDO::FETCH_ASSOC);
87$firstRowIndex = $curPage * $rowsPerPage - $rowsPerPage;
88$res = $dbh->query('SELECT * FROM users '.$qWhere.' ORDER BY '.$sortingField.' '.$sortingOrder.' LIMIT '.$firstRowIndex.', '.$rowsPerPage);
89$response->page = $curPage;
90$response->total = ceil($totalRows['count'] / $rowsPerPage);
91$response->records = $totalRows['count'];
92$i=0;
93while($row = $res->fetch(PDO::FETCH_ASSOC)) {
94 $response->rows[$i]['id']=$row['id'];
95 $response->rows[$i]['cell']=array($row['id'], $row['surname'], $row['fname'], $row['lname']);
96 $i++;
97}
98echo json_encode($response);
99}
100catch (PDOException $e) {
101echo 'Database error: '.$e->getMessage();
102}
103
104<?php
105require_once('dbdata.php');
106try {
107$id = $_POST['id'];
108$surname = $_POST['surname'];
109$fname = $_POST['fname'];
110$lname = $_POST['lname'];
111$dbh = new PDO('mysql:host='.$dbHost.';dbname='.$dbName, $dbUser, $dbPass);
112$dbh->exec('SET CHARACTER SET utf8');
113//$stm = $dbh->prepare('insert into users (surname,fname,lname) values (?, ?, ?');
114$stm = $dbh->prepare('UPDATE users SET surname=?, fname=?, lname=? WHERE id=?');
115$stm->execute(array($surname, $fname, $lname, $id));
116//$stm->execute(array($surname, $fname, $lname));
117}
118catch (PDOException $e) {
119echo 'Database error: '.$e->getMessage();
120}
121
122CREATE TABLE IF NOT EXISTS `users` (
123`id` int(11) NOT NULL AUTO_INCREMENT,
124`surname` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
125`fname` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
126`lname` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
127PRIMARY KEY (`id`)
128) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;