JQGrid Time Management / Разработка календарного процессора - PullRequest
1 голос
/ 11 июля 2011

Я работаю с 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...