Vraag over checkboxen
Ik heb een vraag.
Ik ben bezig met een script waarbij meerdere checkboxen worden aangevinkt, in de database gezet worden.
Ik heb het zo bedacht: Je zet het in de database (in een veld want het zijn stuk of 20 checkboxen die niet allemaal aangevinkt moeten zijn) geschijden met een komma, Naast dat wil ik het ook nog kunnen bijwerken en dat de checkboxen automatisch 'gecheckt' zijn als dat in de database staat, maar hoe kan ik het beste dit doen?
Hopelijk kunnen jullie me helpen,
Groeten,
Simon
Code (php)
1
2
3
4
2
3
4
<input type="checkbox" value="123" name="checkboxgroep[]" />
<input type="checkbox" value="124" name="checkboxgroep[]" />
<input type="checkbox" value="125" name="checkboxgroep[]" />
<input type="checkbox" value="126" name="checkboxgroep[]" />
<input type="checkbox" value="124" name="checkboxgroep[]" />
<input type="checkbox" value="125" name="checkboxgroep[]" />
<input type="checkbox" value="126" name="checkboxgroep[]" />
Als je bovenstaande verstuurd en je vinkt de eerste
en de laatste checkbox aan, dan heb je:
Als je formulier per gebruiker is dat heb je minimaal twee tabellen nodig.
Als bijvoorbeeld de waarde 123,124,125 en 126 voor setting id's staan dan heb je een tabel met setting,s en een koppeltabel nodig.
Als gebruiker 11 nu de eerste en laatst checkbox aanvinkt. Dan word deze query uitgevoerd:
Code (php)
1
2
3
4
2
3
4
<?php
$sQry = 'INSERT INTO user_to_settings (userid, settingid)
VALUES (11,123), (11,126)';
?>
$sQry = 'INSERT INTO user_to_settings (userid, settingid)
VALUES (11,123), (11,126)';
?>
Voordat je bovenstaande query uitvoerd wel even een delete query uitvoeren voor gebruiker 11 op deze tabel.
Edit:
heb je ook nog tekst velden dan kun je de koppeltabel uitbreiden met een 3e veld met bijvoorbeeld de naam "val" met als type varchar.
heb je ook nog tekst velden dan kun je de koppeltabel uitbreiden met een 3e veld met bijvoorbeeld de naam "val" met als type varchar.
Gewijzigd op 30/03/2011 18:30:20 door Martijn B
Het eerste stuk wist ik al. maar is het niet mogelijk om de gewoon de namen uit de database te halen, en dan met de explode de komma te herkennen en die dan in stukken verdelen. en met die waardes een combinatie maken vanuit een array bv if($array[] == 'naam'){ echo ' checked'; }
Gewijzigd op 30/03/2011 19:24:38 door Martijn B
Maar toch bedankt,
ik ga wat opzoeken over normaliseren.
Wat voor data wil je dan opslaan?
Maar een aparte tabel met alle muziek soorten is heel veel werk, als ik niks anders kan bedenken zal ik dat toch maar doen.
Je moet idd een aparte tabel met muzieksoorten hebben!
Een tabel met muzieksoorten kun je ook voor andere dingen gebruiken natuurlijk.
Het filteren, zoeken en bladeren van muziek bijvoorbeeld?
Maar oke, Ik zal een tabel erbij maken.
Zoek inderdaad maar op normaliseren, dan zie je dat je dat moet doen.