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.
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.