Niestety ten sposób nie działa.
Jak tylko zmienię na inputbox'a to dodaje do bazy tylko, że dodaje wszystkie wartości bez względu na użytkownika od początku a nie dla każdego użytkownika. jako komentarze zostawiłem wpisy dla checkbox'a:
<?php
include '../includes/common.inc';
include '../includes/klasy.inc';
include '../includes/students.inc';
include '../includes/frekwencja.inc';
require_group(_TEACHER_GROUP);
define('_ATTENDANCE_DB_TABLE', $conf_settings['db_tblprefix'] . 'attendance');
if (isset($_GET['success'])) $success = success('Frekwencja', $_GET['success']);
if (!isset($_POST['class'], $_POST['toyear'], $_POST['tomonth'], $_POST['today'])) {
if (!isset($_GET['id']))
exit;
}
page_header();
page_menu();
if (!isset($_GET['id'])) {
$absentdate = $_POST['toyear'] . '-' . $_POST['tomonth'] . '-' . $_POST['today'];
$classid = intval($_POST['class']);
$classinfo = classGetClassById($classid);
} else {
$absentdate = date('Y-m-d');
$classid = intval($_GET['id']);
$classinfo = classGetClassById($classid);
}
/*
if (isset($_POST['lessons'])){
$lessons = 1;
$lessons_checked = 'checked="checked"';
} else {
$lessons = 0;
$lessons_checked = null; }
*/
$confquery = 'SELECT * FROM `intra_config` WHERE `id`=1 ';
$confresult = mysql_query($confquery) or die(mysql_error());
$confrow = mysql_fetch_array($confresult);
$max=$confrow['lessonmax'];
// Wstawinie nieobecności ------------------------------------------------------------------------
if ($_POST['todo'] == 'Wstaw') {?>
<div id="content">
<h2>Wstawianie nieobecności w klasie <?=$classinfo['name']?>, <?php echo $absentdate; ?></h2>
<div id="breadcrumb"><a href="<?=$conf_settings['site_url']?>">Strona główna</a> -> <a href="/frekwencja/">Frekwencja</a> -> <em>Wstawianie nieobecności</em></div>
<?php if ($success) echo "<strong class=\"success\">$success</strong>"; ?>
<div id="subnav"><ul><li>
<form method="post" action="do.php" class="search">
<label for="toyear"><img src="/images/options/search.png"/> Przejdź do:
</label><?php dateboxes(true, false); ?>
<label for="class">Klasy:</label><?php classSelectBox(); ?>
<input type="submit" name="submit" value="Przejdź" />
</form></li></ul></div>
<div style="clear: both;"></div>
<p>Umieść znacznik obok każdego nieobecnego ucznia.</p>
<?php $studentlist = classGetStudentsById($classid);
if (empty($studentlist)) {?>
W tej klasie nie ma wpisanych uczniów. Aby zarządzać frekwencją, musisz <a href="/klasy/addstudent.php">dodać uczniów do tej klasy</a>.
<?php } else {?>
<form method="post" action="wstaw.php">
<table cellpadding="5" class="classlist">
<tr><th rowspan="2">ID ucznia</th><th rowspan="2">Imię</th><th rowspan="2">Nazwisko</th><th rowspan="2">Nieobecny?</th><th colspan="<?=$max?>">Lekcje</th></tr>
<tr> <?php for($j=0; $j < $max; $j++) { echo "<th>"; $n=$j+1; echo $n.'</th>';
} echo '</tr>';
$i = 0;
foreach ($studentlist as $student)
{
$i++;
$studentinfo = studentGetStudentById(intval($student['studentid']));
if ($i % 2) echo '<tr class="even">'; else echo '<tr class="odd">';
echo '<td>'. $student['studentid'] .'</td>';
echo '<td>' . $studentinfo['firstname'] . '</td>';
echo '<td>' . $studentinfo['lastname'] . '</td>';
echo '<td><input type="checkbox" name="student['.$student['studentid'].']"/></td>';
for($j=1; $j <= $max; $j++) { ?>
<td><input type="text" name="lessons[]" maxlength="1" size="1" class="inputbox" value="<?php if(isset($lessons[$j])) echo $lessons[$j];?>" /></td>
<?php
}
/*
<td><input type="checkbox" id="lessons" name="lesson[<?php if(isset($lessons[$j])) echo $lessons[$j];?>]" value="<?=$lessons[$j]?>"<?=$lessons_checked[$j]?>/></td>
*/
echo '</tr>';
echo "\n";
}
echo '</table>';
}
?>
<input type="hidden" name="absentdate" value="<?=$absentdate?>" />
<input type="hidden" name="classid" value="<?=$classid?>" />
<input type="hidden" name="studentid" value="<?=$studentid?>" />
<input type="submit" name="todo" value="Wstaw" />
</form>
<?php
// Koniec wstawiania nieobecności -------------------------------------------------------------------
page_footer();
?>
Kliknij i zaczekaj na załadowanie kodu ...
kod pliku wstaw.php
<?php
include '../includes/common.inc';
include '../includes/klasy.inc';
include '../includes/students.inc';
include '../includes/frekwencja.inc';
require_group(_TEACHER_GROUP);
if (!isset($_POST['classid'], $_POST['absentdate'])) {
header('Location: /frekwencja/');
exit;
}
$date = $_POST['absentdate'];
$classid = intval($_POST['classid']);
if (isset($_POST['student'])) {
foreach ($_POST['student'] as $studentid => $status)
{
$query = "INSERT INTO `intra_attendance` VALUES ('', '".$classid."', '".$studentid."', '".$lessons= implode('|',$_POST['lessons'])."', '".$date."')";
$result = @mysql_query($query) or die(mysql_error());
}
}
header('Location: /frekwencja/index.php?success=1');
exit;
?>
Kliknij i zaczekaj na załadowanie kodu ...
Edytowane przez przemokrosno dnia 26.07.2009 21:59:08
|