Avatar billede bluwduch Nybegynder
03. juni 2003 - 14:38 Der er 14 kommentarer og
2 løsninger

Abejde med valgte elementer i Listbox?

Hejsa

Jeg har to Listboxe, hvor den ene indeholder en liste af nogle navne. Den anden er tom, men man kan vælge nogle fra listen og flytte dem over til den anden - Her slettes de så fra den oprindelige liste. Det virker alt sammen fint nok.

Problemet er når jeg skal behandle input fra denne form - Der skal jeg jo arbejde på hvad der er i de to listboxe hver især, og ikke hvilke der er valgt i dem. Det er jo netop hvad der er valgt der bliver sendt med ved en submit.

Er der nogen elegant løsning på dette, eller skal man lave et script der automatisk markerer alle navnene i begge listboxe inden der submittes?.

Mvh
Daniel-San
Avatar billede bluwduch Nybegynder
03. juni 2003 - 14:40 #1
Ups! - Lille slåfejl i overskriften, samt den måske ikke siger lige det jeg vil. Det er jo som sagt ikke de valgte elementer, men faktisk alle elementerne i listboxene :-)
Avatar billede stig3 Mester
03. juni 2003 - 14:40 #2
Har du nogel array's hvor du "holder øje med" hvad der ligger i de to listboxe ?
Avatar billede bluwduch Nybegynder
03. juni 2003 - 14:43 #3
Ikke præcist holder øje med. Jeg har et array der holder styr på hvilke elementer der er valgt i hver af de to, som jeg bruger når jeg skal flytte mere end et element frem eller tilbage - Ellers er der bare hvad man kan se...

Dog ville det jo ikke være noget problem at drøne dem igennem og lave sådan et array for begge listboxe, hvis det er...!
Avatar billede roenving Novice
03. juni 2003 - 14:51 #4
function selAll(sel1,sel2){
  for (i=0;i<sel1.options.length;i++){
    sel1.options[i].selected=true;
  }
  for (i=0;i<sel2.options.length;i++){
    sel2.options[i].selected=true;
  }
}
Avatar billede bluwduch Nybegynder
03. juni 2003 - 14:54 #5
roenving ->

Skal det forstås på det script, at der ikke er nogle pænere løsning, eller hvad?
Avatar billede roenving Novice
03. juni 2003 - 14:58 #6
Jeg tror du er nødt til at gøre det sådan, hvis du skal opsamle data med submit -- og så ville jeg kalde det med onsubmit på formen:

<form action method onsubmit="selAll(this.select1Navn,this.select2Navn);return true;">
Avatar billede bluwduch Nybegynder
03. juni 2003 - 14:59 #7
Det var også mit umiddelbare bud, og derfor jeg lige ville høre her om der er en anden måde at gøre det på...
Avatar billede stig3 Mester
03. juni 2003 - 15:04 #8
Du kunne jo også gemme det i nogle arrays og så smide "arrayet" med url'en som een lang kommasepareret variabel.

Men om det er pænere ved jeg ikke.
Avatar billede bluwduch Nybegynder
03. juni 2003 - 15:10 #9
Tænkte også selv om man kunne lave et hidden felt, og så inden man submitter, så kan alle navnene lægges i dette felt sepereret med et specielt tegn, og så bare adskille det på den "anden" side...

Ser ikke ud som om der er nogen måde at snyde "den" på... :´-|
Avatar billede roenving Novice
03. juni 2003 - 15:17 #10
ja, det ser ud til at du skal vælge den ene eller den anden måde ,-)

-- ved at sætte alle til selected skulle en submit jo automatisk oprette det, som svarer til et array (en kommasepareret liste) !-)
Avatar billede bluwduch Nybegynder
03. juni 2003 - 15:30 #11
Jep! - En lidt bøllet løsning, men det er usynligt for brugeren at man har fusket lidt under overfladen, hvilket er vigtigst :-D

Tak for bud!
Avatar billede bluwduch Nybegynder
03. juni 2003 - 15:31 #12
Hvis I lige smider et svar på hver, så fordeler jeg pointene...
Avatar billede stig3 Mester
03. juni 2003 - 15:32 #13
svar
Avatar billede bluwduch Nybegynder
03. juni 2003 - 15:42 #14
Imponerende :-D
Avatar billede roenving Novice
03. juni 2003 - 23:42 #15
Okay '-)
Avatar billede roenving Novice
04. juni 2003 - 11:09 #16
Takker for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester