[javascript] multiple select

Pagina: 1
Acties:

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
Het is al vaker langsgekomen, maar niet op de manier die ik graag had gezien.

Ik heb een selectbox waarin een beheerder van een site kan klikken op een item en middels pijltjes aan de rechterkant van de selectbox, deze items naar boven cq naar beneden kan verplaatsen...(om de volgorde waarop deze items later op de site worden getoond, aan te geven).
Een voorbeeldje van het form is te vinden hier

Als de beheerder klaar is met het ordenen, moet de gehele lijst doorgegeven worden naar een post.asp file die deze volgorde terugplaatst in de database (zodat ze ook goed op de site worden getoond)

Wanneer ik echter een multiple select maak, werkt het ordenengedeelte niet meer (met de pijltjes), maak ik géén select, kan ik niet de gehele selectbox meegeven.

Ik d8 een multiple te maken, met js alle waarden snel selecteren vóór het submitten en zo een array mee te geven...maar helaas werkt mn ordenen dan dus niet meer...

edit:
Een mogelijke oplossing zou zijn:
1. wanneer pagina wordt opgemaakt, uitlezen hoeveel items in de selectbox staan.
2. gelijk aan dat aantal een hoeveelheid hidden fields maken in mn form
3. vóór het submitten, al deze hidden fields vullen met js

een andere:
1.met js alle waarden inlezen en in 1 grote variabele zetten met een bepaald scheidingsteken.
2. deze variabele in hidden field zetten
3. in de post.asp deze variabele uit elkaar halen

maar lijken me beide een tijdrovende klus en slordig "programmeren"

[ Voor 22% gewijzigd door Vinzzz243 op 17-03-2003 15:56 ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Wanneer ik echter een multiple select maak, werkt het ordenengedeelte niet meer (met de pijltjes), maak ik géén select, kan ik niet de gehele selectbox meegeven.
Post anders eens een deel van je code!
En trouwens denk ik dat dit meer JavaScript gerelateerd is dan ASP.
Je moet gewoon zorgen dat de waarde van alle option value`s de juiste waarde krijgt en vervolgens submitten om in de .asp pagina de waarde van de form collection toe te voegen aan de database.

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
code staat toch op die site. Ik heb nog geen oplossingscode...
Ik begrijp je niet helemaal, als je bedoelt dat mn selectbox niet goed gevuld hebt, is dat onjuist. Het gaat dus alleen om ALLE waarden uit te lezen, en deze te submitten.

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Als de beheerder klaar is met het ordenen, moet de gehele lijst doorgegeven worden naar een post.asp file die deze volgorde terugplaatst in de database (zodat ze ook goed op de site worden getoond)
................
code staat toch op die site. Ik heb nog geen oplossingscode...
Ik begrijp je niet helemaal, als je bedoelt dat mn selectbox niet goed gevuld hebt, is dat onjuist. Het gaat dus alleen om ALLE waarden uit te lezen, en deze te submitten.
Vandaar dat ik zeg dat je op een of andere manier de volgorde van alle items in je form moet verwerken. Dit kan door de waarde (corresponderend met de volgorde van het item) door te geven in de option value, of door idd een hidden field te maken met de waarde gescheiden door een komma.

Anyway ik blijf van mening dat dit meer met js te maken heeft dan met ASP.

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Delvi
  • Registratie: November 2002
  • Laatst online: 05-06 16:52
Ik zou dit inderdaad ook met javascript doen. Je kan een scriptje maken die op de OnSubmit van je form alle items langs gaat. Doe dit van de eerste naar de laatste en zet de value van het item met een ; erachter in een hidden field.
Zo zou je dus een string kunnen krijgen zoals: 2;1;3;0;. In een stukje asp kan je dan de hidden field uitlezen en weer uit elkaar trekken en met de waardes de database gaan aanpassen.

Zoals je dus al als 1 van je oplossingen gegeven had.

[ Voor 7% gewijzigd door Delvi op 18-03-2003 09:11 ]

You can make your program idiot prove. Then someone will develop a better idiot


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

move => W&G

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 02:05
Topic title gefix0red

Motor (of auto) onderhoud bijhouden


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Ik heb hier dus ook mee gewerkt op mn tvgids site vandeweek, 't is best errug mooi geworden vinnik :)

http://razorblade.kicks-ass.net/tvdev/settings.php
Het moven van items naar boven en beneden met een meervoudige selectie (door ctrl ingedrukt te houden) werkt ook als een trein, etc.

De grap voor jouw probleem is de onsubmit functie. Voordat de form gesubmit wordt, worden eerst even alle items geselecteerd, zodat je zeker weten altijd alle items doorgestuurd krijgt.

Succes ermee :)

Stop uploading passwords to Github!


  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
thx, papa eend, heb jouw js gedowned, en ff kijken hoe t werkt. Ik was idd al bezig met het maken van 1 grote string gescheiden door ;'s.

code:
1
2
3
4
test = "";
for (i = 0; i < document.form3.box.options.length; i++)
{ test = test + document.form3.box.options[i].value + ";"; } 
document.form3.volgordefield.value = test;


en in de asp file:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
REDIM getal(30)
    a = 1
    b = 0
    for a = 1 to len(volgorde)
      if Mid(volgorde,a,1)<>";" then 
        getal(b) = getal(b) + Mid(volgorde,a,1)
      else 
        b=b+1
      end if
    next
    for a = 0 to 13
      response.write (getal(a) & "<br>")
    next


Dit werkt prima, alleen krijg ik wat problemen bij het aanmaken van het array getal. Ik kan dat natuurlijk niet op 30 vastzetten, want als er veel items instaan, heb ik er meer dan 30 nodig. Heb al wat gezocht op dynamisch aanmaken van array's enzo, maar helemaal kom ik er niet uit.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En dit is weer PW.. :+ Make up your mind.. ;)

ASP:
1
2
3
4
5
Dim arrAantal(1)
Dim iAantal

iAantal = 4
Redim arrAantal(iAantal)


* gorgi_19 rent weer terug naar de andere kant van de schutting

[ Voor 18% gewijzigd door gorgi_19 op 18-03-2003 11:08 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
gorgi_19 schreef op 18 maart 2003 @ 11:07:
En dit is weer PW.. :+ Make up your mind.. ;)
Had ik al gedaan, had ik gevonden met zoeken, maar krijg dan:
"Deze matrix ligt vast of is tijdelijk vergrendeld."

Maar ik ben papa eend's oplossing aant bekijken en denk dat ik die ga gebruiken.
thx

<edit>

WOW...wrom heb ik hier niet eerder aangedacht. Gewoon de string splitten 8)7 :
code:
1
2
3
4
getal= split(volgorde, ";")
for each x in getal
  response.write(x & "<br>")
next

[ Voor 24% gewijzigd door Vinzzz243 op 18-03-2003 11:43 ]


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

TS: Ik snap echt niet wat je moeilijk doet hoor? als je je input een naam met [] erachter geeft, wordt het automagisch een array, dit is in PHP iig zo. ik weet niet of dit ook zo met ASP werkt.

Dan kan je toch in je serverside code in 1x een
PHP:
1
2
3
4
for ($i=0; $i<sizeof($array); $i++)
{
echo ($array[$i]);
}


doen?

of is asp nou zo brak dat dat ie gewoon niet snapt?

Stop uploading passwords to Github!

Pagina: 1