20. oktober 2004 - 10:43Der er
5 kommentarer og 1 løsning
Submitte alle værdier i en <SELECT>
Hej Eksperter.
Jeg har en <select>-liste på min side, hvor brugeren får lov til at flytte elementerne op og ned ved hjælp af 2 knapper. Det er så planen at når brugeren er færdig med at "sortere" listen, så skal alle værdierne submittes og gemmes i en database. Jeg har ledt rundt her på Eksperten.dk, og har fundet følgende funktion, som jeg har rettet til: function selectAll() { for(i=0;i<document.product_category_form.product_category.options.length + 1;i++) { document.product_category_form.product_category.options[i].selected = true; } }
Mit problem er at den kun submitter det sidste element i listen - altså det element der har fået sat "selected = true" sidst.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Også, hvis du sætter selecten til multiple lige før du sender ?-)
function selectAll(){ var sel = document.product_category_form.product_category; sel.multiple = true; for(i=0;i<sel.length;i++){ sel.options[i].selected = true; } }
-- og du skal bemærke, at længden er en optælling af muligheder i listen, men indekseringen i javascript er nul-baseret, så hvis den f.eks. har 3 muligheder har de 0, 1 og 2 som index ...
roenving : Har forsøgt mig med multiple, men det havde ingen virkning. Så det ender nok med at jeg smider det hele i et hidden felt, og komma-sepererer det.
Så ligger din select som et array på serveren. 'product_category[0]' vil således indeholde 'valg_1', osv. Hvis du skriver i PHP, kan du evt. teste med dette i toppen af et simpelt dokument med ovenstående kode:
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.