[PHP] Checkboxen met dezelfde naam/doel in één formulier

Pagina: 1
Acties:
  • 148 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gerwin
  • Registratie: Juli 2001
  • Laatst online: 08-06 20:10

Gerwin

Ik ben er klaar voor!

Topicstarter
Allereerst dit is zeker geen scriptrequest maar meer een vraag om ervaringen en meningen te wisselen om over hoe iets het beste te kunnen doen wat misschien voor andere programma's en in een andere omgeving ook gebruikt kan worden.

Ik ben op het moment bezig met het ontwikkelen van een webshop script. Ik heb hiervoor op het moment drie tabellen in een Mysql database te weten: secties, groups, en products. In secties staat simpelweg een ID en een naam van alle secties, in de groepen ook ID en naam van de groepen. In de product tabel staat vervolgens alle producten met de diverse velden erbij, prijs, omschrijving etc. Ook staat in deze tabel een cel met de sectie ID en groep ID waar het product in thuishoort.

Alle producten kunnen bijgewerkt worden in een formulier pagina waar dropdown boxen staan. Nu is het de bedoeling dat producten in meerdere sectie's en groepen geplaatst moeten kunnen worden. Ik had hiervoor het idee om dit met checkboxen te doen. Dus:

code:
1
2
3
4
5
<input type=checkbox name=group value='1'>
<input type=checkbox name=group value='2'>
<input type=checkbox name=group value='3'>
<input type=checkbox name=group value='4'>
<input type=checkbox name=group value='5'>


Maar als ik dit doet dan heeft de HTTP_POST_VARS enkel één valuewaarde en kan ik op geen enkele manier alle andere "aangevinkte" groepen pakken. Normaal zou ik gewoon elke groep een aparte ID meegeven, echter weet ik niet op voorhand hoeveel checkboxen ik krijg omdat men nadien ook groepen kan toeveogen.

Iemand die een soortgelijk probleem ooit eerder bij de hand gehad heeft?
Zijn er misschien betere manieren om dergelijke dingen op te zetten, betere databasesturctuur?

Station van Gerwin Prins op Apple Music


Acties:
  • 0 Henk 'm!

  • b19a
  • Registratie: September 2002
  • Niet online
allereerst dien je checkbox en group binnen quotes te zetten:
code:
1
<input type="checkbox" name="group" value="1" />


De oplossing is niet vrij moeilijk:
code:
1
<input type="checkbox" name="group[1]" value="true" />
(6x) nu krijg je group als een array binnen en dan test je of index "1" de waarde "true" heeft.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Een array gebruiken inderdaad. Daarbij kun je overigens ook het getal in de veldnaam weglaten:
HTML:
1
<input type="checkbox" name="blaat[]" value="on" />

Verder is $HTTP_POST_VARS nogal outdated: $HTTP_POST_VARS is een global waarde, terwijl het "nieuwe" $_POST een superglobal is, die bovendie nog een stuk makkelijker tikt ook. Zie ook onze FAQ en PHP.net voor meer info daarover. :)

[ Voor 21% gewijzigd door NMe op 06-08-2005 02:51 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.