Goedemiddag,

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.

Alvast bedankt!
Ik dacht dat ik er zo wel zou komen, kan iemand mij vertellen waarom dit niet werkt?
Ik krijg http 500 error..

$radio = $row['Presentie'];

<input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig">


Edit; hier is mijn volledige code

<html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>

<?php

	//Alle variabelen instellen
	$servername = "localhost";
	$username = "username";
	$password = "password";
	$dbname = "dbname";

        //Verbinden met de database
        $conn = mysqli_connect($servername, $username, $password, $dbname);
        
        //Query opstellen door middel van variabele
        $result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
        
?>

<table width="250">
<tr><th align="left">Naam</th><th align="left" colspan="3">Presentie</th></tr>
<tr><td>&nbsp;</td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td>&nbsp;</td></tr>
<form action="Checkbox.php" method="post">

<?php
    
    while($row = mysqli_fetch_array($result))
    {
        echo "<tr><td>{$row['Naam']}</td>";

        $i = $row['id'];
        $radio = $row['Maandag'];

        echo '<td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afwezig"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Present"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afgemeld"></td>';
        echo "<td>{$row['Presentie']}</td></tr>";
    }
?>

<tr><td>&nbsp;</td></tr>
<tr><td colspan="4"><button type="submit">Opslaan</button></td></tr>
</form>

</body>
</html>
Ik vermoed dat je PHP-code in een PHP-code wilt plaatsen, of direct HTML in een PHP-code.

Is dit de volledige code die je geeft?


En verder kan je "error 500' foutmeldingen ook in je log-bestanden terugvinden.
Ariën, ja, dit is per radio button de volledige code die ik heb geprobeerd.
Inderdaad, dit speelt zich af in een php bestand.
Welke exacte foutmelding is het die je krijgt, en in je log staat. Ik zie geen syntax fouten.
Ik kan hem niet vinden.. :(
Enig idee waar ik zou moeten zoeken?

Hier nog even een update van mijn code.

<html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>

<?php

	//Alle variabelen instellen
	$servername = "Nee";
	$username = "Nee";
	$password = "Nee";
	$dbname = "Nee";

        //Verbinden met de database
        $conn = mysqli_connect($servername, $username, $password, $dbname);
        
        //Query opstellen door middel van variabele
        $result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
        
?>

<table width="250">
<tr><th align="left">Naam</th><th align="left" colspan="3">Presentie</th></tr>
<tr><td>&nbsp;</td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td>&nbsp;</td></tr>
<form action="Checkbox.php" method="post">

<?php
    
    while($row = mysqli_fetch_array($result))
    {
        echo "<tr><td>{$row['Naam']}</td>";

        $i = $row['id'];
        $radio = $row['Maandag'];

        echo '<td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Present"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afgemeld"></td>';
        echo "<td>{$row['Maandag']}</td></tr>";
    }
?>

<tr><td>&nbsp;</td></tr>
<tr><td colspan="4"><button type="submit">Opslaan</button></td></tr>
</form>

</body>
</html>
Zet anders dit bovenaan:

<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
?>
Niet zo :

echo ( $radio == 'Afwezig' ) ? 'checked' : '' ?>


Maar zo :

echo ( $radio == 'Afwezig' ? 'checked' : '' ) ?>


Een topic gespreid over 7 paginas om een checkbox. Godskolere.
Qua syntax mag het met of zonder haakjes, waar je die haakjes neerzet doet ook niet tezake, tenzij je directe concatenatie doet. Desnoods had hij mogen neerzetten

<?php echo $radio == 'Afwezig' ? 'checked' : '' ?>

en het had nog steeds probleemloos gewerkt.
Ik vraag me af of de topicstarter meer behoefte aan een basis-cursus PHP, en aan de hand daarvan wat praktische opdrachten kan maken, waarbij zijn afwezigheidssysteem even in de ijskast wordt gezet.

Als ik in de code kijk zie ik dit staan:
$radio = $row['Maandag'];

Ik neem aan dat hij nog meer wilt gebruiken dan enkel de maandag, en die variabele zal zich ook niet zomaar vanzelf aanpassen naar 'dinsdag'. En als je dan mogelijk nog code gaat dupliceren, dan ben je helemaal op de fout weg bezig....
Volgens mij heb ik het advies om een cursusje te volgen al eens gegeven. Het wordt meer en meer duidelijk dat het nodig is.

Reageren