Toon posts:

[ASP/Access] Listbox(Multiselect)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig in ASP om een app te maken.
In een formulier heeft de gebruiker de mogelijkheid om een nieuw record aan te maken. In dit formulier staat een listbox die gevuld wordt vanuit een Access database. In deze listbox kunnen meerdere items geselecteerd worden. Als de data naar de database geschreven wordt dan worden alle geselecteerd items netjes in de database gezet met een komma als scheidingsteken.
Bij het weergeven van het record op een detailpagina wordt het record zonder problemen weergegeven. De gebruiker heeft vervolgens de mogelijkheid om het record te editen. In het edit formulier heb ik weer gebruik gemaakt van de listbox met alle records uit de tabel die ook de listbox vulde in het 'new record' form. Als er 1 record geselecteerd was bij het aanmaken van een new record dan wordt dit betreffende item ook geselecteerd bij het edit form.

Nu wil ik graag dat er meerdere items in de listbox op het editform worden geselecteerd als er meerdere items zijn gekozen bij het aanmaken van het record zodat de gebruiker hier eventueel een wijziging in kan aanbrengen.

Ik heb veel gezocht maar niets gevonden, heeft iemand een idee?

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:31
Verwijderd schreef op 29 december 2003 @ 22:21:
Als de data naar de database geschreven wordt dan worden alle geselecteerd items netjes in de database gezet met een komma als scheidingsteken.
Waarom heb je gekozen om die gegevens zo op te slaan?
Ik kan je aanraden om dit eens te lezen. Je zal tot de conclusie komen dat je gegevens op een slechte manier opgeslagen worden, en dat je je het jezelf op die manier enkel maar moeilijker maakt.

[ Voor 17% gewijzigd door whoami op 29-12-2003 22:23 ]

https://fgheysels.github.io/


  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Op het moment dat jij de options in de selectbox zet kun je bij de geselecteerde "selected" zetten: <option selected>Bla</option>

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:26

pistole

Frutter

Verwijderd schreef op 29 december 2003 @ 22:21:
Nu wil ik graag dat er meerdere items in de listbox op het editform worden geselecteerd als er meerdere items zijn gekozen bij het aanmaken van het record zodat de gebruiker hier eventueel een wijziging in kan aanbrengen.
Wat lukt er dan niet? Dit is wat vaag.
Zie verder ook de tip hierboven en het goede advies van whoami

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
Ik heb daar eigenlijk niet voor gekozen. De data wordt automatisch op die manier in de database gezet. Heb jij een andere suggestie waarmee het beter zou gaan?

Ik zal zeker het stuk even lezen, bedankt iig voor die tip

[ Voor 17% gewijzigd door Verwijderd op 29-12-2003 22:26 ]


  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:26

pistole

Frutter

Verwijderd schreef op 29 december 2003 @ 22:24:
Ik heb daar eigenlijk niet voor gekozen. De data wordt automatisch op die manier in de database gezet. Heb jij een andere suggestie waarmee het beter zou gaan?
Ja. Normaliseren. Referentiëel maken. En meer van die mooie dingen ;)

Maar wat gaat er nu precies niet goed dan? Worden de eventueel geselecteerde velden niet "automatisch" selected in de listbox?

[ Voor 8% gewijzigd door pistole op 29-12-2003 22:27 ]

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
pistole schreef op 29 december 2003 @ 22:27:
[...]

Ja. Normaliseren.
Maar wat gaat er nu precies niet goed dan? Worden de eventueel geselecteerde velden niet "automatisch" selected in de listbox?
De geselecteerde items worden wel netjes in de database gezet op de standaard manier (met een , ertussen).
Deze string gaat in een textveld in de database bij het nieuwe record.
Als ik het record opvraag in het edit form dan worden items in de selectbox niet geselecteerd als er meer dan 1 item is. Ik zet dus in die selectbox alle items uit een 'brontabel' met gegevens (een andere tabel dan het betreffende record dus). Vervolgens wil ik graag de items geselecteerd hebben welke in dat textveld staan die gevuld is bij het aanmaken van het record.
Ik hoop dat ik het duidelijk uitgelegd heb.

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:26

pistole

Frutter

Verwijderd schreef op 29 december 2003 @ 22:31:
[...]


De geselecteerde items worden wel netjes in de database gezet op de standaard manier (met een , ertussen).
Deze string gaat in een textveld in de database bij het nieuwe record.
Als ik het record opvraag in het edit form dan worden items in de selectbox niet geselecteerd als er meer dan 1 item is. Ik zet dus in die selectbox alle items uit een 'brontabel' met gegevens (een andere tabel dan het betreffende record dus). Vervolgens wil ik graag de items geselecteerd hebben welke in dat textveld staan die gevuld is bij het aanmaken van het record.
Ik hoop dat ik het duidelijk uitgelegd heb.
Ik begrijp je. Controleer of je niet te maken hebt met hoofdletter/kleine letter vergelijkingen, eventuele spaties, of misschien zelfs comma's die niet wordt gestript.

En: gooi debug info in je HTML output zodat je precies ziet wat er gebeurt. .Write dus bijvoorbeeld de strings die je met elkaar vergelijkt enzo. Sowieso: check je HTML source om te zien of de items wel SELECTED worden door je code.
Staat verder je listbox wel op MULTIPLE?

[ Voor 11% gewijzigd door pistole op 29-12-2003 22:38 ]

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
pistole schreef op 29 december 2003 @ 22:36:
[...]

Ik begrijp je. Controleer of je niet te maken hebt met hoofdletter/kleine letter vergelijkingen, eventuele spaties, of misschien zelfs comma's die niet wordt gestript.

En: gooi debug info in je HTML output zodat je precies ziet wat er gebeurt. .Write dus bijvoorbeeld de strings die je met elkaar vergelijkt enzo. Sowieso: check je HTML source om te zien of de items wel SELECTED worden door je code.
Staat verder je listbox wel op MULTIPLE?
Ze worden niet SELECTED, daar zit het probleem juist. De listbox staat wel op MULTIPLE, daar kan het dus niet aan liggen. Ik denk dat het hem zit in het feit dat ik niet goed aangeef welke items de box moet selecteren. Ik maak gebruik van Dreamweaver en geef aan bij de listbox dat de 'Initially Selected' gelijk moet zijn als de waarde van het texveld in het record. Ik denk dat ik die code zelf moet maken zodat de juiste items worden geselecteerd. Ik heb wel een bron oid nodig waar ik de info vandaan kan halen hoe je dit het beste kan doen. Ik werk eigenlijk nooit met listboxes op deze manier maar heb het nu wel nodig.

Verwijderd

Topicstarter
whoami schreef op 29 december 2003 @ 22:22:
[...]

Waarom heb je gekozen om die gegevens zo op te slaan?
Ik kan je aanraden om dit eens te lezen. Je zal tot de conclusie komen dat je gegevens op een slechte manier opgeslagen worden, en dat je je het jezelf op die manier enkel maar moeilijker maakt.
Ik heb ondertussen het stuk gelezen. Dit is zowiezo de manier waarop ik normaliter werk (normaliseren). Het probleem ligt daar niet in. Het is op deze manier niet mogelijk bij dit concrete probleem omdat het geen toevoegingen betreft. Het moet mogelijk zijn om items te selecteren en deselecteren. Het aanmaken van records in een andere tabel is dus niet werkbaar in dit geval. iig bedankt voor de tip

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:26

pistole

Frutter

Verwijderd schreef op 29 december 2003 @ 22:44:
[...]
Ik maak gebruik van Dreamweaver en geef aan bij de listbox dat de 'Initially Selected' gelijk moet zijn als de waarde van het texveld in het record.
Hmm.. you're on your own dan want ik heb geen ervaring met Dreamweaver. Het lijkt me echter wel duidelijk waarom de velden dus niet geselecteerd worden... jou ook hoop ik?

Dus: dat wordt zelf scripten. Misschien zou je ook in je openingspost moeten melden dat je Dreamweaver gebruikt en dus niet zelf de code hebt geschreven?

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
pistole schreef op 29 december 2003 @ 22:53:
[...]
..Misschien zou je ook in je openingspost moeten melden dat je Dreamweaver gebruikt en dus niet zelf de code hebt geschreven?
Dat is geen slecht idee, Ik schrijf het grootste gedeelte van de code zelf maar gebruik Dreamweaver MX als 'GUI'
Ik hoop dat iemand anders nog een idee heeft of een bron waar ik nuttige info vandaan kan halen.
Pistole: bedankt iig voor je hulp

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:26

pistole

Frutter

ik zou je deze 'tip' nog kunnen geven:

1) zet het veld in een variabele
2) dmv split maak je hier een array van
3) maak je hele OPTION klaar en zet die ook in een variabele
4) fiets dmv for bla=lbound(array) to ubound(array) door je array van geselecteerde waarden en doe hiermee een replace in je OPTION blok (zet er selected in)

MEt dit idee (en wat programmeerervaring + creativiteit) zou je er wel uit moeten kunnen komen.
Succes!

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
pistole schreef op 29 december 2003 @ 23:01:
MEt dit idee (en wat programmeerervaring + creativiteit) zou je er wel uit moeten kunnen komen.
Succes!
Moet gaan lukken, soms heb je even weer een frisse kijk nodig op de zaken waar je op zit te staren. Thanx
Wat mij betreft mag deze dicht

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:31
Verwijderd schreef op 29 december 2003 @ 22:50:
[...]
Het is op deze manier niet mogelijk bij dit concrete probleem omdat het geen toevoegingen betreft. Het moet mogelijk zijn om items te selecteren en deselecteren. Het aanmaken van records in een andere tabel is dus niet werkbaar in dit geval. iig bedankt voor de tip
Leg mij dan eens uit waarom dat niet mogelijk is? :?

Je kan toch perfect de id's van de geselecteerde items in een andere tabel wegschrijven zoals het hoort.
Als je nieuwe items geselecteerd hebt, of andere items gedeselecteerd hebt, kan je de nieuwe situatie makkelijk bewaren door eerst alle records uit die tabel te verwijderen, en dan de huidige geselecteerde items te bewaren.

https://fgheysels.github.io/

Pagina: 1