Я работаю с jqGrid для разработки модуля управления временем для клиента.Мы уже развернули jqGrid на остальной части сайта, поэтому работаем над тем, чтобы он соответствовал и этой роли.
Нам необходимо отображать столбец для каждого дня календарного месяца, каждого дня.затем разделение на два столбца для сверхурочной работы (HV - поле ввода текста) и причина (R - выбор раскрывающегося списка).У меня есть сетка, спроектированная до некоторой степени (столбцы сверхурочной работы / причины, список сотрудников филиала и т. Д.), Но у меня проблемы с записью процессора.Код ниже показывает, что у меня есть.Это заполняет сетку (через другой файл) списком сотрудников.Список столбцов (номера с 1 по 31) генерируется из функции PHP, которая определяет текущий месяц и год.Затем Grid.php публикует сообщения в gridsave.php, когда строка щелкается.
Я бы хотел как можно проще определить, какое поле было отредактировано.Я не хочу, чтобы 62 столбца (HV и R для каждого дня 31-дневного месяца) в моей базе данных на всякий случай, я хотел бы программно определить идентификатор поля (дата) и сохранить его в столбце даты, используя мой процессор.Если это вообще возможно, я бы хотел передать только измененные поля моему процессору, чтобы сэкономить время обработки.
Затем, в обратном порядке, я должен иметь возможность извлечь эту информацию (основываясь на дате, определенной выше) и введите его в правильный столбец в jqGrid.
Само собой разумеется, что я сейчас натолкнулся на кирпичную стену и не уверен, как действовать по любому из вышеперечисленных вопросов, поэтому придется склониться перед превосходными знаниями.Любая помощь в этом будет высоко ценится!
grid.php
var lastsel2;
jQuery(document).ready(function(){
jQuery("#timeLog").jqGrid({
url:'datagrid.php?module=timemanagement&branchid=<?php echo($branchid); ?>',
editurl: "gridsave.php?branchid=<?php echo($branchid); ?>",
datatype: 'json',
mtype: 'GET',
colNames:['First Name','Surname','Job Title',
<?php
$x = 1;
while($x <= $numdays) {
echo("'HV',");
echo("'R',");
$x++;
}
?>
],
colModel :[
{name:'firstname', index:'firstname', align: 'center', width: 100, searchoptions: { sopt: ['eq', 'ne', 'lt', 'gt', 'cn', 'nc']}},
{name:'lastname', index:'lastname', align: 'center', width: 100, searchoptions: { sopt: ['eq', 'ne', 'lt', 'gt', 'cn', 'nc']}},
{name:'jobtitle', index:'jobtitle', align: 'center', width: 100, searchoptions: { sopt: ['eq', 'ne', 'lt', 'gt', 'cn', 'nc']}},
<?php
$x = 1;
while($x <= $numdays) {
echo("{name:'hv-$x-$month-$year', index:'hv', align: 'center', width: 25, sortable: false, editable: true},");
echo("{name:'r-$x-$month-$year', index:'r', align: 'center', width: 25, sortable: false, editable:true, edittype:'select', editoptions:{value:':;OT:OT;S:S;H:H;OA:OA'}},");
$x++;
}
?>
],
onSelectRow: function(id){
if(id && id!==lastsel2){
$('#timeLog').jqGrid('saveRow',lastsel2);
$('#timeLog').jqGrid('editRow',id,true);
lastsel2=id;
}
},
pager: '#pager',
height: 500,
rowNum:25,
rowList:[25,50,100],
sortname: 'firstname',
sortorder: 'ASC',
viewrecords: true,
}).navGrid('#pager', {search:true, edit: false, add:false, del:false});
});
gridsave.php
// Check for exec permission
define('_CHECKEXEC', TRUE);
// Connect to database
include("./includes/init.inc.php");
if($_GET['oper'] == "edit") {
// Generate query and insert data
$sql = "INSERT INTO tbltimemanagement(userid, hv, r) VALUES ('$_POST[id]', '$_POST[hv]', '$_POST[r]');";
mysql_query($sql);
}