Есть динамическая таблица с возможность редактирования и.т.д
Столкнулся с проблемой передачи параметра php обработчику на вывод табличных данных, нужно чтобы выбирал не все поля а по заданному
id_zakaz_baza но как его передать не могу разобраться с этим плагином.
http://******.ru/craete_zakaz.php?p=121
$id = $_GET['p']; раньше брал из строки браузера, но в данном не работает и понятно почему.
craete_zakaz.php--------я так понимаю что видимо существует вариант функции которая могла бы отправить параметр в getdata.php но что то не где не нашел
<script type="text/javascript">
jQuery(document).ready(function(){
var lastSel;
jQuery("#list").jqGrid({
url:'getdata.php',
datatype: 'json',
mtype: 'POST',
colNames:['#', 'Заказ', 'Работа', 'Сена/час', 'норма', 'Сумма', 'Исполнитель'],
colModel :[
{name:'id', index:'id', width:50, align:'right', search:false}
,{name:'id_zakaz', index:'id_zakaz', width:50, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
,{name:'rabota', index:'rabota', width:200, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
,{name:'norma', index:'norma', width:50, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
,{name:'n4', index:'n4', width:50, align:'right', editable:true, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
,{name:'sum', index:'sum', width:100, align:'right', editable:false, edittype:"text", searchoptions:{sopt:['eq','ne','bw','cn']}}
,{name:'ispol', index:'ispol', width:200, align:'right', editable:true, edittype:"select", editoptions:{dataUrl:'sot.php'}}
],
pager: jQuery('#pager'),
rowNum:20,
width:900,
height:400,
rowList:[20,35,50],
sortname: 'id',
sortorder: "asc",
viewrecords: true,
caption: 'Выполенные работы',
ondblClickRow: function(id) {
if (id && id != lastSel) {
jQuery("#list").restoreRow(lastSel);
jQuery("#list").editRow(id, true);
lastSel = id;
}
},
editurl: 'saverow.php'
}).navGrid('#pager',{view:false, del:false, add:false, edit:true},
{}, // default settings for edit
{}, // default settings for add
{}, // delete instead that del:false we need this
{closeOnEscape:true, multipleSearch:true, closeAfterSearch:true}, // search options
{} /* view parameters*/
);
});
</script>
ОБРАБОТЧИК getdata.php
<?php
require_once('dbdata.php');
try {
//читаем параметры
$id_zakaz_baza =121; ----КАКИМ ОБРАЗОМ ПЕРЕДАТЬ ПАРАМЕТР
$curPage = $_POST['page'];
$rowsPerPage = $_POST['rows'];
$sortingField = $_POST['sidx'];
$sortingOrder = $_POST['sord'];
//подключаемся к базе
$dbh = new PDO('mysql:host='.$dbHost.';dbname='.$dbName, $dbUser, $dbPass);
//указываем, мы хотим использовать utf8
$dbh->exec('SET CHARACTER SET utf8');
$dbh->exec('set character_set_client="utf8"');
$dbh->exec('set character_set_results="utf8"');
$dbh->exec('set collation_connection="utf8"');
$qWhere = '';
//определяем команду (поиск или просто запрос на вывод данных)
//если поиск, конструируем WHERE часть запроса
if (isset($_POST['_search']) && $_POST['_search'] == 'true') {
$allowedFields = array('surname', 'fname', 'lname');
$allowedOperations = array('AND', 'OR');
$searchData = json_decode($_POST['filters']);
//ограничение на количество условий
if (count($searchData->rules) > 10) {
throw new Exception('Cool hacker is here!!! :)');
}
$qWhere = ' WHERE ';
$firstElem = true;
//объединяем все полученные условия
foreach ($searchData->rules as $rule) {
if (!$firstElem) {
//объединяем условия (с помощью AND или OR)
if (in_array($searchData->groupOp, $allowedOperations)) {
$qWhere .= ' '.$searchData->groupOp.' ';
}
else {
//если получили не существующее условие - возвращаем описание ошибки
throw new Exception('Cool hacker is here!!! :)');
}
}
else {
$firstElem = false;
}
//вставляем условия
if (in_array($rule->field, $allowedFields)) {
switch ($rule->op) {
case 'eq': $qWhere .= $rule->field.' = '.$dbh->quote($rule->data); break;
case 'ne': $qWhere .= $rule->field.' <> '.$dbh->quote($rule->data); break;
case 'bw': $qWhere .= $rule->field.' LIKE '.$dbh->quote($rule->data.'%'); break;
case 'cn': $qWhere .= $rule->field.' LIKE '.$dbh->quote('%'.$rule->data.'%'); break;
default: throw new Exception('Cool hacker is here!!! :)');
}
}
else {
//если получили не существующее условие - возвращаем описание ошибки
throw new Exception('Cool hacker is here!!! :)');
}
}
}
//определяем количество записей в таблице
$rows = $dbh->query("SELECT COUNT(id) AS count FROM rabot WHERE id_zakaz='$id_zakaz_baza'".$qWhere);
$totalRows = $rows->fetch(PDO::FETCH_ASSOC);
$firstRowIndex = $curPage * $rowsPerPage - $rowsPerPage;
//получаем список пользователей из базы
$res = $dbh->query("SELECT * FROM rabot WHERE id_zakaz='$id_zakaz_baza' ".$qWhere." 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'];
$response->rows[$i]['cell']=array($row['id'], $row['id_zakaz'], $row['rabota'], $row['norma'], $row['n4'], $row['sum'], $row['ispol']);
$i++;
}
echo json_encode($response);
}
catch (Exception $e) {
echo json_encode(array('errMess'=>'Error: '.$e->getMessage()));
}
// end of getdata.php