[PHP/AJAX] Dropdownbox generen op basis van 3 eerdere keuzes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 15-09 10:07
Beste tweakers,

Ik ben opzoek naar tips over hoe ik een dropdownbox kan genereren op basis van keuzes die iemand gemaakt heeft in 3 voorgaande dorpdownboxen.

De situatie waarin het gebruikt gaat worden is als volgt (waarschijnlijk verduidelijkt dit ook gelijk wat ik wens):
Men kan op een webpagina een elektro component voor een machine samenstellen, dit doet men door een keuze te maken bij 3 andere componenten in de machine. Vervolgens kiest men het onderdeel dat in dit elektro component moet komen, geeft men aan of dit serie of parallel geschakeld is en hoeveel van dit onderdeel er in het component zit. Dit werkt allemaal zoals verwacht.
De combinatie van de 3 gemaakte keuzes en het gekozen onderdeel is uniek, voor exact dezelfde 3 keuzes bij de componenten kan namelijk prima nog een 2de, 3de, etc. onderdeel toegevoegd worden. Men mag echter niet bij een volgend onderdeel de keuze krijgen hoe dit geschakeld moet worden, dit willen we automatisch selecteren en vervolgens de dropdownbox blokkeren. Men beslist met het eerste onderdeel hoe deze geschakeld word en daarna kan dit niet meer.

Omdat op voorhand niet bekend is welke keuzes er gemaakt gaan worden kan de dropdownbox op voorhand ook niet geblokkeerd worden. Pas zodra alle 3 de keuzes gemaakt zijn kan in de database gekeken worden of de keuze bestaat en zo ja, dan moet de eerder gemaakt keuze worden geselecteerd in de betreffende dropdownbox en dan geblokkeerd worden.

Mogelijke oplossing:
In JS - 3 variabelen maken:
* Keuze 1
* Keuze 2
* Keuze 3
Deze staan standaard op 0 en worden gevuld met het id van de keuze die gemaakt is in de bijbehorende dropdownbox. Telkens als een box veranderd geeft deze zijn id door, nadat dat gebeurd is word er gecontroleerd of er nog een keuze variabele is die op 0 staat:
- Zo ja, rustig blijven wachten
- Zo nee, de id's doorgeven en kijken of deze combinatie bestaat in de database en dan de dropdown genereren.

Hebben jullie nog andere ideeën hiervoor of is dit de meest logische oplossing?

Acties:
  • 0 Henk 'm!

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Pas zodra alle 3 de keuzes gemaakt zijn kan in de database gekeken worden of de keuze bestaat en zo ja, ...
En zo nee? dan moet de gebruiker opnieuw beginnen? Doe je dan niet al iets verkeerd in de drie eerste dropdowns als je daarmee onmogelijke combinaties kan maken?

En is het niet beter om in plaats van de schakeling-dropdown te blokkeren, de andere dropdowns te resetten? (eventueel met een vraag om bevestiging om opnieuw te beginnen).

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Bij een select kan je een onChange event eraan koppelen. Bij elke onChange doorloop je een verificatie (stap 1: is keuze niet de nul-keuze, stap 2: zijn beide andere selectboxen ook goed).

Als deze slaagt stuur je een xmlHttpRequest naar je server met de drie waarde van de selectboxen. Je krijgt een lijst terug met alle mogelijke opties voor je laatste box.
Mocht de lijst leeg zijn, kan je een bericht plaatsen dat de gebruiker een onmogelijke combinatie heeft gekozen. Je kan daarbij een voorstel doen met de mogelijke consequenties (voorbeeld: "Kies voor parallel ipv serieel (3 keuzes mogelijk").

Zoiets?

[ Voor 24% gewijzigd door mithras op 25-04-2008 17:21 . Reden: Voorstel Blaise verwerkt :) ]


Acties:
  • 0 Henk 'm!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 15-09 10:07
Blaise schreef op vrijdag 25 april 2008 @ 17:15:
[...]
En zo nee? dan moet de gebruiker opnieuw beginnen? Doe je dan niet al iets verkeerd in de drie eerste dropdowns als je daarmee onmogelijke combinaties kan maken?
Nee, zolang niet alle 3 de keuzes zijn gemaakt is de 4de dropdown gewoonweg leeg. Pas als alle 3 voorgaande gekozen zijn, moet het systeem in de database zoeken naar de combinatie van de gekozen waardes. Komt deze voor, dan wordt automatisch de eerder gekozen schakeling gekozen. Komt deze niet voor dan word de lijst normaal opgebouwd.
Blaise schreef op vrijdag 25 april 2008 @ 17:15:
En is het niet beter om in plaats van de schakeling-dropdown te blokkeren, de andere dropdowns te resetten? (eventueel met een vraag om bevestiging om opnieuw te beginnen).
Daar zou geen sprake van moeten zijn.
mithras schreef op vrijdag 25 april 2008 @ 17:19:
Bij een select kan je een onChange event eraan koppelen. Bij elke onChange doorloop je een verificatie (stap 1: is keuze niet de nul-keuze, stap 2: zijn beide andere selectboxen ook goed).
...
Zoiets?
Ja, dat is dus wat ik zelf ook al in gedachten had. ;)