2012-03-15 3 views
0

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

У меня есть две таблицы, одна из которых называется 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"

"участие" таблица имеет поля "attendance_id", "member_id", "attendance_date", "attendance_value"

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

| Идентификатор пользователя | Имя | 15-15-2012 | 20.03.2012 | 22.03.2012 |

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

+0

Извините, но все, что вы написали звук больше как технических требований, а не как вопрос. Какой у Вас вопрос? (см. [FAQ] (http://stackoverflow.com/faq)) – Oleg

+0

Как добавить дополнительные столбцы и как я могу соединить эти столбцы с таблицей посещаемости? Благодаря! – raygo

+0

downvote: сначала сделайте домашнее задание. мы здесь, чтобы помочь вам, как только вы научились основам. –

ответ

1

Я больше если вы не использовали jqGrid, и вам нужно, чтобы начать ...

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

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

+0

Да, я проверял, но не смог найти то, что хочу. У меня работает jqgrid получение данных из одной из моих таблиц. Вторая часть - проблема, чтобы автоматически генерировать столбцы и подключать их к базе данных. – raygo

+0

@raygo: прочитайте [ответ] (http://stackoverflow.com/a/2295093/315935), например, о динамическом создании столбцов. – Oleg

+0

Привет! Я думаю, это потому, что я очень новичок в jquery, что я действительно не понимаю пример – raygo

Смежные вопросы