Ik ben retenieuw met PHP en ik heb een vraag.
Het is niet dat ik er niet uit kom, maar meer dat ik niet weet waar ik moet zoeken.
Ik heb een PHP pagina gemaakt die gelinkt is aan een database in MySQL.
De database in MySQL bestaat uit 3 kolommen, namelijk;
- Groep
- Naam
- Aanwezig
Ik heb nu een query opgesteld die, afhankelijk in welke groep je je bevind, iedereen toont in de groep.
Hij toont dus Groep, Naam en Aanwezig die nu nog leeg is.
Ik wil het zo kunnen maken dat de 'leiding' van een groep aanwezigheid kan registreren door middel van een checkbox.
Zodra de checkbox is aangevinkt, krijgt de kolom 'Aanwezig' de waarde 'Present' in de database.
Zo een checkbox wil ik dus voor iedereen aan kunnen vinken.
Zodra iedereen op de lijst is gecontroleerd, moet het resultaat naar de database worden verzonden en opgeslagen.
Zodra ik dan wil zien wie er allemaal zijn, moet hij de lijst tonen met de zojuist aangevinkte checkboxen.
Kolom 1 en kolom 2 moeten dus 'read only' worden en kolom 3 moet 'editable' worden.
Hoe kan ik dit het beste doen? Als het nodig is, wil ik hier wel mijn code plaatsen.
Er hoeft niet een hele code voor mij geschreven te worden, maar ik wil weten hoe ik dit aanpak.
Had je dan zowel een checkbox voor aanwezig als afwezig? (sorry, ik heb de discussie niet gevolgd)
Nee, het ging eerst om een single checkbox voor aanwezig.
?
Onbekende gebruiker
08-08-2017 22:09
Ja, het ging inderdaad zoals Ariën zei om 1 checkbox. Deze postte alleen een waarde als die aangevinkt werd, dus had er een hidden field aan toegevoegd zodat er uberhaupt een waarde werd gepost, maar dat is naar ik nu lees niet betrouwbaar, dus switchen naar radio buttons.
Vanuit gebruiksvriendelijkheid lijkt me dat (checkboxen) wel wenselijker/overzichtelijker ... dan hoef je alleen aan te vinken wie er aanwezig is.
Technisch gezien ... alvorens het formulier te tonen een array met alle id's (als key) opslaan met waarde 0. Na het posten de array aanpassen op basis van de checkboxen die zijn geset.
Hmm dat zou ik zelf wel prettiger vinden.
Dan moet ik dus gewoon even een array opstellen die alles naar waarde afwezig zet.
Wanneer een checkbox dan is aangevinkt, wordt die verzonden naar de bijbehorende kolom.
Technisch gezien ... alvorens het formulier te tonen een array met alle id's (als key) opslaan * in sessie met waarde 0. Na het posten de array aanpassen op basis van de checkboxen die zijn geset.
Die sessie was ik vergeten erbij te zetten. Dus op de pagina waar je het formulier toont, haal je eerst alle id's op uit de database. Die id's sla je in een array op waarbij iedere key een id is. Iedere value zet je op 0. Na het posten van het formulier doorloop je alle checkboxes die geset zijn (die geven dus een id terug), en dat id gebruik je om de array die in de sessie staat te updaten. Je hebt dan dus een array met id's die nulletjes (afwezig) en eentjes (aanwezig) bevatten. Die array kun je dan gebruiken om de database te updaten.
?
Onbekende gebruiker
10-08-2017 03:00
Goedenavond,
Ik ben reeds geswitched naar de radio buttons en geen seconde spijt van.
Nu wil ik een extra feature implementeren, namelijk het tellen van de kinderen in groep X die aanwezig zijn.
Ik had dit opgesteld, maar het levert niets op. Let niet op de code voor en achteraan, hier staat nog tekst normaliter.
<?php
$tellen = mysqli_query($conn,"SELECT Maandag, SUM( Maandag = 'Afwezig' ) AS `Present` FROM Aanwezigheid WHERE `Groep` = 'A'");
?>
<table width="325">
<tr><td colspan="2">Aantal aangemelde kinderen:</td><td><?php echo "$tellen"; ?></td></tr></table>