meerdere waarden wegschijven dmv checkboxen.
Ik ben bezig met een absenten registratie systeem.
op dit moment kan ik een klas zoeken en er wordt weer gegeven welke leerlingen er in deze klas zitten.
Nu wil ik achter elke gevonden leerling een checkbox krijgen.
de leerlingen die afwezig zijn tijdens dat uur, worden aangevinkt.
en alle aangevinkten leerlingen worden toegevoegd in de database zodra er op een knop gedruk wordt.
Hoe doe ik dit. ?
tot op heden heb ik dit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$query= "SELECT * FROM leerling_id WHERE klas='$klas';";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
$aantal = mysql_num_rows($result);
$leerling_id = $rij->leerling_id;
if ($aantal == 0){
echo ("Helaas, er werden geen records gevonden
met <b> ". $_POST["voornaam"]. " </b><br>\n");
}else
while($rij = mysql_fetch_object($result))
echo '<tr><td>'.$rij->leerling_id.
'</td><td>'.$rij->voornaam.
'</td><td>'.$rij->achternaam.
'</td><td>'?>
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
$aantal = mysql_num_rows($result);
$leerling_id = $rij->leerling_id;
if ($aantal == 0){
echo ("Helaas, er werden geen records gevonden
met <b> ". $_POST["voornaam"]. " </b><br>\n");
}else
while($rij = mysql_fetch_object($result))
echo '<tr><td>'.$rij->leerling_id.
'</td><td>'.$rij->voornaam.
'</td><td>'.$rij->achternaam.
'</td><td>'?>
maar dit geeft alleen een checkbox bij de laatste naam.
icm met dit
Code (php)
1
2
3
4
5
2
3
4
5
<?php if($afwezig == "on"){$sql="insert into absent (leerling_id)";
$sql.=" values ('$leerling_id');";
$result= mysql_query($sql) or die("foutje");[/code]
voegt die wel iemand toe aan die tabel, maar ik wil dit met meerdere waarden kunnen doen.
$sql.=" values ('$leerling_id');";
$result= mysql_query($sql) or die("foutje");[/code]
voegt die wel iemand toe aan die tabel, maar ik wil dit met meerdere waarden kunnen doen.
Omdat alle checkboxen daardoor dezelfde naam hebben, zijn ze niet van elkaar te onderscheiden. Zorg er dus in ieder geval voor dat die naam per leerling uniek is (door er bijvoorbeeld het leerling-id in op te nemen).
Op de volgende pagina kun je uit de array $_POST['afwezig'] lezen welke leerlingen afwezig waren. En die allemaal wegschrijven naar de database.
Ik vermoed echter dat je database ook niet helemaal juist in elkaar zit. In de tabel absent wil je naast het leerling id toch ook weten tijdens welke les een leerling afwezig was en bijvoorbeeld wie de leeraar was op dat moment?
ps. @Willemvp: je kunt de naam van de checkbox wel hetzelfde laten, als je maar zorgt dat je er een array van maakt en de checkboxen een value meegeeft. Dat is later makkelijker met verwerken.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$query= "SELECT * FROM leerling_id WHERE klas='$klas';";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
$aantal = mysql_num_rows($result);
$leerling_id = $rij->leerling_id;
if ($aantal == 0){
echo ("Helaas, er werden geen records gevonden
met <b> ". $_POST["voornaam"]. " </b><br>\n");
}else
while($rij = mysql_fetch_object($result))
echo '<tr><td>'.$rij->leerling_id.
'</td><td>'.$rij->voornaam.
'</td><td>'.$rij->achternaam.
'</td><td><form id="form1" name="form1" method="post" action="'.$PHP_SELF.'">
<input name="'.$rij->leerling_id.'" type="checkbox" id="absent" value="'.$rij->leerling_id.'" />
</form> </td>';
?>
$query= "SELECT * FROM leerling_id WHERE klas='$klas';";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
$aantal = mysql_num_rows($result);
$leerling_id = $rij->leerling_id;
if ($aantal == 0){
echo ("Helaas, er werden geen records gevonden
met <b> ". $_POST["voornaam"]. " </b><br>\n");
}else
while($rij = mysql_fetch_object($result))
echo '<tr><td>'.$rij->leerling_id.
'</td><td>'.$rij->voornaam.
'</td><td>'.$rij->achternaam.
'</td><td><form id="form1" name="form1" method="post" action="'.$PHP_SELF.'">
<input name="'.$rij->leerling_id.'" type="checkbox" id="absent" value="'.$rij->leerling_id.'" />
</form> </td>';
?>
De insert moet je even zelf uitzoeken vergeet overigens nooit de form tag bij form elementen. Bij het inserten moet je zorgen dat elke leerling een nieuw record wordt, vergeet ook hierbij NIET de datum te vermelden dit zag ik namelijk niet terugkomen in je script. Het is nl. wel handig om te weten wie wanneer afwezig is he ;)
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
Nog een kleinigheidje: $PHP_SELF hoort $_SERVER['PHP_SELF'] te zijn.
En ik blijf bij mijn punt dat het gebruik van een array als naam van de checkbox eenvoudiger is. Alles absente leerlingen staan dan in 1 array.
Blanche schreef op 16.01.2007 12:41:
@Jurgen: dit gaat in ieder geval niet werken. Je sluit php op regel 20 af en op regels daarna ga je dingen van php vragen zonder eerst php weer te openen...
Nog een kleinigheidje: $PHP_SELF hoort $_SERVER['PHP_SELF'] te zijn.
En ik blijf bij mijn punt dat het gebruik van een array als naam van de checkbox eenvoudiger is. Alles absente leerlingen staan dan in 1 array.
Nog een kleinigheidje: $PHP_SELF hoort $_SERVER['PHP_SELF'] te zijn.
En ik blijf bij mijn punt dat het gebruik van een array als naam van de checkbox eenvoudiger is. Alles absente leerlingen staan dan in 1 array.
jah ik zie het. Kopieeer foutje. ff verbeteren
Nu werkt het ook nog niet, aangezien je de echo afsluit en dan html probeert weer te geven. Dit zal in ieder geval een parse error opleveren...
Gewijzigd op 01/01/1970 01:00:00 door Willem vp