login  Naam:   Wachtwoord: 
Registreer je!
 Forum

php en checkboxes

Offline Duikboot - 16/01/2006 15:56
Avatar van DuikbootGrafische gevorderde Hey,

Hoe kan je met php en mysql iets maken met checkboxes. Als je bijvoorbeeld een game in je db zet, en dmv checkboxes aangeeft voor welke platforms deze beschikbaar is, hoe moet je dat dan doen?

18 antwoorden

Gesponsorde links
Offline Ultimatum - 16/01/2006 16:07
Avatar van Ultimatum PHP expert je kan doen
  1. if($_POST['checkbox'] == TRUE) {
  2. //in je db proppen
  3. }

of iets dergelijks, niet getest ofzo, maar misschien kan je het zo doen 
Offline Duikboot - 16/01/2006 16:27 (laatste wijziging 16/01/2006 16:36)
Avatar van Duikboot Grafische gevorderde Ik zal eens kijken of dat werkt en hoever ik ermee kom, bedankt!

EDIT: Hmm... werkt niet echt... eens kijken wat er loos is
Offline denbeckers - 16/01/2006 16:43
Avatar van denbeckers PHP interesse zo iets?
  1. <input type="checkbox" name="check" value="ja" <?php if($_POST['check'] == "ja"){echo'checked';} ?>> Ja
  2. <input type="checkbox" name="check" value="nee" <?php if($_POST['check'] == "nee"){echo'checked';} ?>> Nee
  3.  
  4. In je controle:
  5. if($_POST['check'] != ja){
  6. echo "niet in databse";
  7. }
  8. ...
Offline Duikboot - 16/01/2006 16:48
Avatar van Duikboot Grafische gevorderde Volgens mij doe ik iets verkeerd bij de query, of daarvoor, want ook zonder het checkbox gedeelte komt er geen nieuwe rij in de tabel. Zal even een stukje code geven.

  1. <?
  2. if(isset($submit)){
  3. // platforms setten
  4. if($_POST['gba'] == TRUE) {
  5. $gba = 1;
  6. }
  7. if($_POST['gbc'] == TRUE) {
  8. $gbc = 1;
  9. }
  10. if($_POST['gc'] == TRUE) {
  11. $gc = 1;
  12. }
  13. if($_POST['pc'] == TRUE) {
  14. $pc = 1;
  15. }
  16. if($_POST['ps'] == TRUE) {
  17. $ps = 1;
  18. }
  19. if($_POST['ps2'] == TRUE) {
  20. $ps2 = 1;
  21. }
  22. if($_POST['psp'] == TRUE) {
  23. $psp = 1;
  24. }
  25. if($_POST['xb'] == TRUE) {
  26. $xb = 1;
  27. }
  28. if($_POST['xb3'] == TRUE) {
  29. $xb3 = 1;
  30. }
  31. // einde platforms setten
  32.  
  33. $insert = "INSERT INTO mdgames (id, titel, cover, gba, gbc, gc, pc, ps, ps2, psp, xb, xb3, releasedate, beschrijving) VALUES ('', '$_POST[titel]', '$_POST[cover]', $gba, $gbc, $gc, $pc, $ps, $ps2, $psp, $xb, $xb3, '$_POST[releasedate]' , '$_POST[beschrijving]')";
  34. $query = mysql_query($insert);
  35. echo "De game is opgeslagen. Klik <a href=\"cp.php\">hier</a> om naar het control panel te gaan.";
  36. }
  37. ?>
Offline Rens - 16/01/2006 16:53
Avatar van Rens Gouden medaille

Crew algemeen
  1. if(!empty($_POST['gba']))
  2. {
  3. $gba = 1;
  4. }

Moet je dan doen.
De checkbox is empty, of niet.
Hij is niet true of false, aangezien je een value meepost.
Offline ThAlmighty - 16/01/2006 17:05 (laatste wijziging 16/01/2006 17:06)
Avatar van ThAlmighty HTML beginner Duikboot ff-tjes tussendoor he, waarom maak je daar geen switch statement van.

Dit kan je ook doen:
Doe je het zonder checkboxen, maar met een dropdown. Werkt makkelijker, kost minder ruimte, is overzichtelijker.

Voor dropdown, bijv games.php:
  1. <form method="post" action="submit.php">
  2. <select>
  3. <option value="gba">Gba</option>
  4. enz..
  5. </select>
  6. </form>


submit.php
  1. <?php
  2. switch ($_POST['game']){
  3. case "gba"
  4. $game="gba";
  5. break;
  6. case "gbc"
  7. $game="gbc";
  8. break;
  9. default:
  10. $game="none";
  11. break;
  12. }
  13.  
  14. //hier je db insert rotzooi :) :)
  15. ?>


Is denk ik wat makkelijker als wat jij wilt 

ThAlmighty
Offline Rens - 16/01/2006 17:08
Avatar van Rens Gouden medaille

Crew algemeen
Hij wil (denk ik) dat er meerdere gegevens kunnen worden opgegeven.
Met een selectbox kun je maar 1 ding selecteren.
Offline Duikboot - 16/01/2006 17:16
Avatar van Duikboot Grafische gevorderde Klopt Rensjuh

Sommige spellen komen voor meerdere platform uit (GBA en Gamecube bijvoorbeeld), en met een select kun je er dan maar 1 kiezen. Maar met !empty() erin doet de query nogsteeds niets. Er staat dat alles goedgegaan is, maar een nieuwe rij zie ik niet 
Offline Rens - 16/01/2006 17:21
Avatar van Rens Gouden medaille

Crew algemeen
Gebruik ERROR HANDLING!
Dat is nou al zo vaak gezegd dat je bij je queries error handling moet gebruiken... *zucht*
Offline ThAlmighty - 16/01/2006 17:48
Avatar van ThAlmighty HTML beginner Als je idd meerdere dingen wilt selecteren, is mijn manier niet de goeie.

ThAlmighty
Offline Duikboot - 16/01/2006 18:54
Avatar van Duikboot Grafische gevorderde Ik heb het nu opgelost. Er moet ook nog een else{} achter met een waarde = 0 wanneer de checkbox niet aagevinkt is. Nu werkt het zoals ik gepland had, thx iedereen 
Offline ThAlmighty - 16/01/2006 19:32
Avatar van ThAlmighty HTML beginner np m8   
Offline Duikboot - 16/01/2006 23:24 (laatste wijziging 16/01/2006 23:25)
Avatar van Duikboot Grafische gevorderde Misschien dat het helemaal niet mogelijk is, maar is er een manier om die 9 if's en else's op een kortere manier neer te zetten. In mijn editpage heb ik dan 2 van die rijen (in totaal 18, 1 om de gecheckte weer te geven, en een volgende om de eventuele aanpassingen de juiste waarde te geven bij de update) en het word daardoor wel erg lang.
Offline Gerard - 17/01/2006 02:09
Avatar van Gerard Ouwe rakker
  1. <?php
  2.  
  3. $bGameboy = TRUE; // Test variabele
  4. $bXbox = TRUE; // Test variabele
  5. $bPlaystation = FALSE; // Test variabele
  6.  
  7. ($bGameboy == TRUE ? $iGameboy = 1 : $iGameboy = 0);
  8. ($bXbox == TRUE ? $iXbox = 1 : $iXbox = 0);
  9. ($bPlaystation == TRUE ? $iPlaystation = 1 : $iPlaystation = 0);
  10.  
  11. ?>
Offline ThAlmighty - 17/01/2006 07:39
Avatar van ThAlmighty HTML beginner misschien gaat het ook wel makkelijker als je niet in je db 1 of 0 zegt, maar gewoon true or false. Dunno.

ThAlmighty
Offline Thomas - 17/01/2006 07:41
Avatar van Thomas Moderator Dit kan echt zoveel korter, je kunt zelfs al de consoles die iemand gebruikt in één veld opslaan (als een getal).

Ik post straks wel een voorbeeldje.
Offline Duikboot - 17/01/2006 16:38
Avatar van Duikboot Grafische gevorderde Bedankt FangorN.

Waarom zou dat handiger zijn ThAlmighty? True of False is toch hetzelfde als 0(false) en 1(true).
Offline ThAlmighty - 17/01/2006 18:32
Avatar van ThAlmighty HTML beginner ja, maar je checkboxen geven al standaart een false of true output. Dus dan hoef je dat alleen maar in je db te gooien en klaar. Scheelt veel type werkt en je hebt hetzelfde redement.

ThAlmighty
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.23s