login  Naam:   Wachtwoord: 
Registreer je!
 Forum

onbekende POST checkboxes

Offline Stefaan - 05/03/2008 22:27
Avatar van StefaanNieuw lid Ok, mijn probleem is al volgt.

Ik heb een catalogus in PHP. Daar kan je een Item toevoegen. Ik heb een onderdeel waar je groepen kan aanmaken (waar je de items dan kan in steken). Aan de hand van die groepen krijg je checkboxes (van de groepen) in het menuutje om een item aan te linken. Dus een SQL table voor de groepen, een table voor de items en nu een table voor de connecties (want een item kan in meerdere groepen voorkomen). De checkboxes krijgen uiteraard de naam van de groep mee (voor POST verwerking dan).
Bij het toevoegen van een groep wordt automatisch een column bijgevoegd in de tabel voor de groeperingen (de link tussen item en groep).

Mijn vraag is nu hoe je kan zien welke checkboxes er aangevinkt zijn... Wat is de goeie manier. De checkboxes (en dus de POST naam) is variabel naargelang de groepen in mijn sql tabel...

Is er een manier om te zien welke checkboxes allemaal gelijk zijn aan "on" en hun naam. Ik zou dan zo de link leggen in mijn sql tabel tussen de uiteindelijk groep en het id van het item...

Ik raak er niet aan uit...

6 antwoorden

Gesponsorde links
Offline Stijn - 05/03/2008 23:03
Avatar van Stijn PHP expert Als je een checkbox <input type="checkbox" name="group1" value="iets" /> hebt en het is aangevinkt dan is de volgende code true.

  1. if( isset( $_POST['group1'] ) && $_POST['group1'] == 'iets' ) {


Als je alle checkboxen de waarde 'on' geeft en als name de Naam van de group dan kan je als volgt checken welke Groepen aangevinkt zijn.

  1. foreach( $_POST as $name => $value ) {
  2. if( $value == 'on' )
  3. echo 'Group: ' . $name . '<br />';
  4. }
Offline Stefaan - 05/03/2008 23:51
Avatar van Stefaan Nieuw lid Hmz... al van alles geprobeerd...

ik heb volgende code voor de checkboxes:
  1. <?php
  2. include('data/inc/sql_login.php');
  3. $result = mysql_query("SELECT * FROM $tabel_light_hoofdgroep");
  4. while ($sql = mysql_fetch_array($result))
  5. {
  6. $value = "hoofd_" . $sql['value'];
  7. $hoofdgroep = $sql['hoofdgroep'];
  8. $checked = "checked" . $value;
  9. ?>
  10. <label for="<?php print $value ?>"></label>
  11. <input type="checkbox" name="hoofdgroep" value="<?php print $value ?>" <?php print $$checked ?> /><?php print $hoofdgroep ?><br />
  12. <?php
  13. }
  14. ?>


Je hebt ongetwijfeld de oplossing gegeven... maar moet ik iets veranderen zodat de foreach mijn waarden print (of echo-ed)... krijg er niks uit...
Offline Maffiow - 05/03/2008 23:56
Avatar van Maffiow PHP interesse ik zie een while geen foreach..
Offline Stefaan - 06/03/2008 00:02
Avatar van Stefaan Nieuw lid Aja, maar dees is om de checkboxes aan te maken. Ik gebruik de code van Stijn om ze uit te lezen... wat me dus niet lukt...
Offline Maffiow - 06/03/2008 01:01
Avatar van Maffiow PHP interesse foutmeldingen ?
Offline Stijn - 06/03/2008 11:01
Avatar van Stijn PHP expert Er zijn een paar dingen die fout zijn in je script. Vervang eens lijn 11 door het volgende.

  1. <input type="checkbox" name="hoofdgroep[]" value="<?php print $value ?>" <?php echo $checked; ?> /><?php print $hoofdgroep ?><br />


Als je je formulier verstuurd zal je een array hebben $_POST['hoofdgroep']. Iedere checkbox die in je formulier aangevinkt is zal in die array staan.

Dus als je 3 checkboxen hebt en je vinkt de eerste en de laatste dan zal $_POST['hoofdgroep'] een array zijn met 2 elementen en 2 waarden. Die waarden zijn de value's van je aangevinkte checkboxen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.195s