[PHP] value checkbox + radiobutton naar DB

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
er wordt een lijst gegenereerd met mensen die je aan kunt vinken om op te geven, deze worden op de een volgende pagina weg geschreven door middel van een for each loop.

maar voor sommige leden tot 14 jaar is er de mogelijkheid tussen 2 soorten trommels, alleen ik snap niet hoe ik het wedstrijdnr (checkbox) samen met de soort trom (radiobutton) weg kan schrijven in de database.

PHP:
1
2
3
4
5
6
7
8
while($ledentamjunior= mysql_fetch_array($lidtamjunior)){
    $leeftijd=$jaar-$ledentamjunior[gebdatum]-1;
    if ($leeftijd < 14) {
   echo ("<input type='checkbox' name='juniortamboer[]>".$ledentamjunior[voornaam]."<input type='radio'>Gildetrom tot 13<input type='radio'>Muziektrom<br>");
   } else{
   echo ("<input type='checkbox' name='wedstrijdnr[]' value='".$ledentamjunior[wedstrijdnr]."'>".$ledentamjunior[voornaam]."Verplicht gildetrom 14 en 15 jaar<br>");
   }
}


omdat bij de rest de klasse al goed in de tabel leden staat kan ik met het wedstrijdnr de klasse erbij zoeken en met een for each wegschrijven in de aanmelding tabel

maar hoe kun je met een for each loop nou ook de aangevinkte checkboxen van juniortamboer wegschrijven met als klasse hetgene wat met de radiobutton gekozen is

Ik heb wel gevonden dat het met javascritp moet kunnen maar dat heb ik nog nooit gebruik en zocht eigenlijk een manier via php

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Ten eerste zou ik net enkel lege haken gebruiken, maar ook een nummer opgeven (bv wedstrijdnummer). Anders is niet te achterhalen welke checkbox nu aangevinkt is. Verder lijkt het me handiger wanner je ook een name en een value opgeeft voor de radio button. Anders wordt er immers helemaal niks verstuurd. Voor de name van de radio button geld weer hetzelfde.

[ Voor 11% gewijzigd door Janoz op 17-06-2008 13:53 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja er moest zoiezo nog een value bij dat was een foutje, maar die zit er bij de else wel bij in de input.

Maar ik ga denk ik maar gewoon 2 checkboxen maken waarbij ze dan aan moeten vinken welke ze willen gaan doen omdat het met die loop en radiobuttons ook niet goed werkt omdat er telkens 1 van de 2 gekozen moetn worden, maar op deze manier worden er heel veel checkboxen neergezet met maar 1 mogelijkheid voor verschillende personen.

Ideen blijven natuurlijk altijd welkom

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Nogmaals, zet geen [] neer, maar [".$ledentamjunior[wedstrijdnr]."].

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
wat geef je dan nog als value mee? ik gebruik [wedstrijdnr] alleen als ik bij 1 input meerdere waardes door moet geven. maar omdat de mensen die opgegeven worden allemaal naar in een andere tabel weggeschreven worden kan ik ze toch ook met een for each wegschrijven zonder dat er bij de name iets tussen de haken staat, dan wordt toch alles wat aangevinkt is erin gezet?

ik heb het nu anders opgelost doordat ze 2 mogelijkheden krijgen met een checkbox, alleen kunnen ze nu ook 2 dingen aanvinken wat eigenlijk nie te de bedoeling is
PHP:
1
2
3
4
5
6
7
while($ledentamjunior= mysql_fetch_array($lidtamjunior)){
    $leeftijd=$jaar-$ledentamjunior[gebdatum]-1;
    if ($leeftijd < 14) {
   echo ($ledentamjunior[voornaam]." ".$ledentamjunior[tussenvoegsel]." ".$ledentamjunior[achternaam]." opgeven voor:<input type='checkbox' name='tamboerjunior[".$ledentamjunior[wedstrijdnr]."]' value='muziektrom'>Muziektrom of<input type='checkbox' name='tamboerjunior[".$ledentamjunior[wedstrijdnr]."]' value='gildetrom'>Gildetrom");
   } else{
   echo ("<input type='checkbox' name='wedstrijdnr[]' value='".$ledentamjunior[wedstrijdnr]."'>".$ledentamjunior[voornaam]."Verplicht gildetrom 14 en 15 jaar<br>");
   }

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Ik weet niet precies waar je mee bezig bent, maar je zult per opgehaald record een appart nummer moeten hebben. Ik nam aan dat wedstrijd nummer uniek per row is, maar waarschijnlijk kan je beter gebruikerid of zo gebruiken. Je probleem was dat je geen radiobuttons kon gebruiken en omdat je niet eist welk vinkje nu bij welke gebruiker hoorde. Door die ID weet je dat wel. Vervolgens kun je met foreach $key->$value alles keurig uitlezen.

Verder klopt er van je verjaardags berekening ook niks. Niet iedereen is op 1 januari jarig.

@hieronder: Talking about paard achter de wagen spannen zeg. Middels javascript proberen radio button functionaliteit te hangen aan checkboxes terwijl het geven van een unieke naam per radiobutton groep genoeg en standaard is......

[ Voor 18% gewijzigd door Janoz op 17-06-2008 15:08 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Verwijderd schreef op dinsdag 17 juni 2008 @ 14:30:
ik heb het nu anders opgelost doordat ze 2 mogelijkheden krijgen met een checkbox, alleen kunnen ze nu ook 2 dingen aanvinken wat eigenlijk nie te de bedoeling is
Nog een stukje javascript toevoegen aan de pagina dat het andere vinkje uitzet als er een vinkje wordt aangezet (bij onclick)? (En de 2e checkbox moet een andere name hebben, want ze hebben nu dezelfde naam als ik het goed zie)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het gaat ook om de leeftijd op 1 januari, dus dat klopt wel dat moet ik hebben

en per opgehaald record een apart nummer maakt in principe toch niet uit of ik da bij de name of bij de value zet (mischien niet het mooiste maar heel goed ben ik niet in php en het werkt wel als je verder toch alleen moet weten of bij die persoon wel of niet was aangevinkt)

wat ik wilde was eigenlijk een beetje overbodig, ik wilde namenlijk dat je aan moest vinken of iemand mee deed, en als die persoon jonger als 14 was en een tamboer dan moest je ook nog aangeven in welke klasse die meedoet.

nu heb ik het opgelost met 2 radio buttons zodat je er 1 aan kunt vinken als je iemand op wil geven en niks als de persoon niet meedoet

PHP:
1
2
3
4
5
6
7
8
while($ledentamjunior= mysql_fetch_array($lidtamjunior)){
    $leeftijd=$jaar-$ledentamjunior[gebdatum]-1;
    if ($leeftijd < 14) {
   echo ("<tr><td>".$ledentamjunior[voornaam]." ".$ledentamjunior[tussenvoegsel]." ".$ledentamjunior[achternaam]."</td><td> opgeven voor:<input type='radio' name='tamboerjunior[".$ledentamjunior[wedstrijdnr]."]' value='muziektrom'>Muziektrom of<input type='radio' name='tamboerjunior[".$ledentamjunior[wedstrijdnr]."]' value='gildetrom'>Gildetrom</td></tr>");
   } else{
   echo ("<tr><td><input type='checkbox' name='wedstrijdnr[]' value='".$ledentamjunior[wedstrijdnr]."'>".$ledentamjunior[voornaam]." ".$ledentamjunior[tussenvoegsel]." ".$ledentamjunior[achternaam]."</td><td>(Verplicht gildetrom wegens te hoge leeftijd voor muziektrom)</td></tr>");
   }
}

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
2 radio buttons is een beetje lastig als je verkeerd klikt: je kunt de radiobutton dan niet makkelijk uitzetten bij mijn weten.. Vandaar de truc met Javascript, die zie je ook af en toe in Windows, en MS heeft daarvoor bakken mensen die zouden moeten weten hoe je een UI ontwerpt ;)

(Voorbeeld in Windows XP Pro: bij file properties->advanced...->compress/encrypt)

[ Voor 13% gewijzigd door pedorus op 17-06-2008 16:01 ]

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
En er heeft gewoon nog niemand opgemerkt dat dit:

PHP:
1
$ledentamjunior[gebdatum]


eigenlijk

PHP:
1
$ledentamjunior['gebdatum']


moet zijn?

Ik gok dat je notices hebt uitstaan want elke keer dat je dit doet zou je een notice krijgen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Cartman! schreef op dinsdag 17 juni 2008 @ 16:48:
En er heeft gewoon nog niemand opgemerkt dat dit:

PHP:
1
$ledentamjunior[gebdatum]


eigenlijk

PHP:
1
$ledentamjunior['gebdatum']


moet zijn?

Ik gok dat je notices hebt uitstaan want elke keer dat je dit doet zou je een notice krijgen.
Ik ben zelf echt slecht in php, maar voor een project voor school moet ik het nu gebruiken. Waarschijnlijk zijn al mijn pagina's slecht maar ik ben er vanuit gegaan dat als het werkte dat het goed was, en dit werkt zo ook vandaar.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op woensdag 18 juni 2008 @ 09:14:
[...]


Ik ben zelf echt slecht in php, maar voor een project voor school moet ik het nu gebruiken. Waarschijnlijk zijn al mijn pagina's slecht maar ik ben er vanuit gegaan dat als het werkte dat het goed was, en dit werkt zo ook vandaar.
Zet eens:
PHP:
1
error_reporting(E_ALL);


Als eerste in je PHP file, dan kan je zien wat er fout gaat. Met als gevolg dat je minder snel last hebt van "vage" problemen omdat er ergens een index niet bestond bijvoorbeeld :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Erkens schreef op woensdag 18 juni 2008 @ 09:17:
[...]

Zet eens:
PHP:
1
error_reporting(E_ALL);


Als eerste in je PHP file, dan kan je zien wat er fout gaat. Met als gevolg dat je minder snel last hebt van "vage" problemen omdat er ergens een index niet bestond bijvoorbeeld :)
Dat heb ik nu gedaan maar dan wordt er verder niks aangegevens, ook niet als ik opzettelijk fouten ga maken :/

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op woensdag 18 juni 2008 @ 09:35:
[...]


Dat heb ik nu gedaan maar dan wordt er verder niks aangegevens, ook niet als ik opzettelijk fouten ga maken :/
Wellicht staat het weergeven van errors uitgeschakeld.

Plaats ook deze regel eens:
PHP:
1
ini_set("display_errors", true);

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Erkens schreef op woensdag 18 juni 2008 @ 09:36:
[...]

Wellicht staat het weergeven van errors uitgeschakeld.

Plaats ook deze regel eens:
PHP:
1
ini_set("display_errors", true);
Thanx dat werkt inderdaad, maar ik weet niet of dat slim is om nu nog gaan te gebruiken omdat geen enkele pagina dan meer werkt vrees is ik :P

Maar zeker voor volgende PHP pagina's zal ik het onthouden

Acties:
  • 0 Henk 'm!

  • Eegee
  • Registratie: Januari 2000
  • Nu online
Verwijderd schreef op woensdag 18 juni 2008 @ 09:44:
[...]
Thanx dat werkt inderdaad, maar ik weet niet of dat slim is om nu nog gaan te gebruiken omdat geen enkele pagina dan meer werkt vrees is ik :P
Die ini-instelling laat alleen de errors zien. Als je dus ineens errors vermeld ziet staan, zegt dat dat je pagina's sowieso al nooit goed gewerkt hebben :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ze zijn allemaal verkeerd opgebouwd omdat ik nergens haakjes heb gebruikt bij $array[waarde]
maar het werkt wel, alleen nu alle pagina's toch maar aangepast was vooral ff knippen plakken en nu geen meldingen meer dus...
Pagina: 1