Сделайте лист посещаемости с jqGrid - PullRequest
0 голосов
/ 16 марта 2012

Я хочу сделать лист посещаемости с jqGrid. Я использую PHP и Mysql

У меня есть две таблицы, одна называется MemberInfo, а другая - Attendance.

Из MemberInfo я хочу показать в сетке имя и фамилию участника. Тогда я хочу иметь коробку на каждый день недели. Я хочу, чтобы, когда я добавлял некоторые данные в эти поля, чтобы данные сохранялись в таблице посещаемости, а также чтобы при повторной генерации сетки посещаемости поля, которые уже были заполнены, отображали данные.

Мой вопрос: Как я могу добавить больше столбцов и Как я могу связать эти столбцы с таблицей посещаемости? Спасибо!

EDIT:

Мне удалось создать новые столбцы и добавить данные в базу данных с помощью cellEdit. По-прежнему возникают проблемы с генерацией сетки с данными из 2 таблиц. Спасибо!

Надеюсь, это понятно! если нет, пожалуйста, дайте мне знать! спасибо!

(если есть другая библиотека для PHP, которая облегчила бы это, пожалуйста, дайте мне знать) EDIT:

<?php
require_once 'jqgrid/jq-config.php';
// include the jqGrid Class
require_once "jqgrid/php/jqGrid.php";
// include the driver class
require_once "jqgrid/php/jqGridPdo.php";
// Connection to the server
$conn = new PDO("mysql:host=localhost;dbname=db;","root",NULL);
// Tell the db that we use utf-8
$conn->query("SET NAMES utf8");

// Create the jqGrid instance
$grid = new jqGridRender($conn);
// Write the SQL Query
$grid->SelectCommand = 'SELECT member_id,  first_name, last_name FROM members_info WHERE member_type !=5';
// set the ouput format to json
$grid->dataType = 'json';
$grid->table ="members_info";
$grid->setPrimaryKeyId("member_id");
// Let the grid create the model

$grid->setColModel();
// Set the url from where we obtain the data
$grid->setUrl('grid.php');
$grid->cacheCount = true;

// Set grid caption using the option caption
$today = date('Y-m-d');

                    if(isset($_POST['past_month'])){
                        $today = date('Y-m-d', strtotime($_POST['past_month']));
                    }

                    if(isset($_POST['next_month'])){
                        $today = date('Y-m-d', strtotime($_POST['next_month']));
                    }
$days = attendance_cal(date('F', strtotime($today)), date('Y', strtotime($today)));  // Gets the days for that month and that year

sort($days); //sort the days

foreach($days as $day){

    $grid->addCol(array(
"name"=>date('m-d', $day)
));

}

$grid->setGridOptions(array(
    "caption"=>"This is custom Caption",
    "rowNum"=>30000,
    "sortname"=>"member_id",
    "hoverrows"=>true,
    "width"=>1000,
    "height"=>1000,
    "cellEdit"=> true,
    "cellsubmit"=>"remote",
    "cellurl"=> "cell_dump.php",
    "rowList"=>array(10,20,50),
    "postData"=>array("grid_recs"=>776)
    ));


// Change some property of the field(s)
$grid->setColProperty("member_id", array("label"=>"ID", "width"=>60, "editable"=>false));
$grid->setColProperty("first_name", array("label"=>"First Name", "width"=>120, "editable"=>false));
$grid->setColProperty("last_name", array("label"=>"Last Name", "width"=>120, "editable"=>false));


// Enjoy
$grid->navigator = false;


// and finaly bind key navigation
// This is way if no events or parameter
//$grid->callGridMethod('#grid', 'bindKeys');
//
//in case of passing events is better this way

$bindkeys =<<<KEYS
$("#grid").jqGrid('bindKeys', {"onEnter":function( rowid ) { alert("You enter a row with id:"+rowid)} } );
KEYS;

$grid->setJSCode($bindkeys);



$grid->renderGrid('#grid','#pager',true, null, null, true,true);
$conn = null;

?>

Позвольте мне быть более конкретным:

В моей таблице «Члены» есть поля «member_id», «first_name», «last_name»

В таблице «Посещаемость» есть поля «посещаемость», «член_идентификации», «посещаемость_дата», «посещаемость_значение»

Моя Сетка, я хочу, чтобы она выглядела так:

| ID участника | Имя | 03-15-2012 | 03-20-2012 | 03-22-2012 |

Столбец «Идентификатор члена» и столбец «Имя» создаются из таблицы «Участники» с помощью команды SelectCommand, остальные столбцы, которые я создаю, - с помощью addCol. Я вроде могу выяснить, как добавить данные в базу данных через cellEdit, но когда я загружаю лист, я не знаю, как поместить данные из базы данных в сетку, кроме тех, которые поступают из таблицы Members. Я надеюсь, что это понятнее! спасибо!

1 Ответ

1 голос
/ 16 марта 2012

Я предполагаю, что вы никогда не использовали jqGrid, и вам нужно начать ...

Пожалуйста, посмотрите на эту ссылку, она дает вам демонстрации с кодом для всего, что вам нужно знать о том, как создатьВаша сетка с использованием PHP.

http://www.trirand.net/demophp.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...