---
title: "Seslectbox som array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/76241-seslectbox-som-array"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "skyman"
published: "2003-05-07T14:49:24.000Z"
updated: "2003-05-09T07:23:39.000Z"
replies: 15
views: 305
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/76241-seslectbox-som-array"
---

# Seslectbox som array

## #1 — skyman, 2003-05-07T14:49Z

Kan man namnge en selectbox som:

```
<select name="s2[]" multiple>
```

 och sedan kunna använda den i javascript?

Hur ska man annars kunna hämta de poster som finns i den om den bara heter "s2"?

Permalänk: https://www.webforum.nu/p/76241

## #2 — Peter S, 2003-05-07T15:41Z

Visst kan du använda *s2\[\]* som namn. Med "poster", menar du då alternativ som finns i dess "option"-element?

```
<script type="text/javascript">
<!--

window.onload=function(){
     var e=document.forms["f"].elements["s2"];

     alert( e.options[0].text+ " - " +e.options[0].value );
};

//-->
</script>

...

<form name="f">
<select name="s2">
     <option value="Foo">Bar</option>
     <option value="Faa">Baz</option>
</select>
</form>
```

 :)

Permalänk: https://www.webforum.nu/p/1040280

## #3 — dectgap, 2003-05-07T16:11Z

Jag tror att skyman undrar hur man kan använda de valda alternativen, om det finns flera stycken valda, på samma sätt som man kan skriva document.forms\['aa'\].elements\['bb'\].value. Försöker man göra på det sättet när man har flera alternativ i en select valda används bara det första värdet.

Det är ju fullt möjligt att göra en loop som kontrollerar om en option är vald, men jag tror inte att man kan lösa det på något annat sätt.

Permalänk: https://www.webforum.nu/p/1040305

## #4 — skyman, 2003-05-08T06:58Z

Jag tror att ni förstod mig rätt men jag kan ju förklara mig lite ytterligare.

För att kunna hämta de alternativ som är selectade mha php så måste den vara en array, alltså heta *s2\[\]*.
Men ger jag den det namnet så hade jag problem med det i javascriptet, jag kan ju inte skriva:

```
var e=document.forms["f"].elements["s2[]"];
```

Permalänk: https://www.webforum.nu/p/1040679

## #5 — Peter S, 2003-05-08T09:50Z

Du måste loopa igenom "select"-elementet för att ta reda på vilka alternativ som är valda. Således behöver du alltså inte använda namnet *s2\[\]* på detta element.

 :)

Permalänk: https://www.webforum.nu/p/1040817

## #6 — skyman, 2003-05-09T06:19Z

Menar du loopa med javascript eller med php?
Om php, hur så?
Om javascript, varför? ;)

Permalänk: https://www.webforum.nu/p/1041458

## #7 — Peter S, 2003-05-09T06:37Z

Red. Det blev lite överflödig kod.

Om du på den mottagande sidan skall hämta de markerade valen är det väl bara att använda dig av en vanlig "formulärfunktion"?

```
' ASP
Response.Write( Request.Form("s2[]") )
```

 :)

Permalänk: https://www.webforum.nu/p/1041463

## #8 — skyman, 2003-05-09T06:44Z

Men där har du ju använt namnet s2\[\]...
Skrivfel?

Permalänk: https://www.webforum.nu/p/1041467

## #9 — Peter S, 2003-05-09T06:46Z

Jag redigerade inlägget lite på grund av överflödig kod  ;) 

Namnet *s2\[\]* går utmärkt att använda, såväl i ASP som i JavaScript.

 :)

Permalänk: https://www.webforum.nu/p/1041468

## #10 — skyman, 2003-05-09T06:51Z

Jag ändrade till *s2\[\]* i min select men hur ska jag då skriva i tex denna funktion?

```
function checkAll(s){
   var f=document.forms["form"].elements[s],i=f.length;
   while(i-->0){
      f[i].selected=true;
   }
};
```

 Ska jag ändra så att s1 också blir en array?

Permalänk: https://www.webforum.nu/p/1041469

## #11 — Peter S, 2003-05-09T06:59Z

Den där funktionen behöver du inte ändra på alls ( du skickar alltså in namnet på "select"-elementet vid anropet? ). 

Hakparenteser eller ej, koden skall fungera.  ;) 

 :)

Permalänk: https://www.webforum.nu/p/1041470

## #12 — skyman, 2003-05-09T07:05Z

Precis jag anropar den enligt :

```
<input type="button" onClick="checkAll('s2');" value="Alla">
```

Men jag får fel... 

```
'length' är null eller inte ett objekt
```

och det verkar vara i funktionen *add*...

Permalänk: https://www.webforum.nu/p/1041472

## #13 — Peter S, 2003-05-09T07:14Z

Vi kanske missuppfattar varandra  ;)  Eftersom du anropar funktionen med namnet på "select"-elementet, *s2* i det här fallet, måste alltså detta element heta *s2*, ej *s2**\[\]***.

 :)

Permalänk: https://www.webforum.nu/p/1041476

## #14 — skyman, 2003-05-09T07:21Z

Ha!
Nu så, jag tyckte du sa att man inte kunde använda namnet *s2\[\]* när man använde javascript men jag ändrade överallt där jag anropar *s2* till *s2\[\]* och då funkar det :)

Tack för hjälpen!

Permalänk: https://www.webforum.nu/p/1041479

## #15 — Peter S, 2003-05-09T07:21Z

Då förstår vi varandra  :bire 

 :)

Permalänk: https://www.webforum.nu/p/1041480

## #16 — skyman, 2003-05-09T07:23Z

Det är ju kanon! :birp

Permalänk: https://www.webforum.nu/p/1041481

---

Tråden på webben: https://www.webforum.nu/amne/javascript/76241-seslectbox-som-array
