---
title: "Ta ut valt värde i en select!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/137098-ta-ut-valt-värde-i-en-select"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "paddan"
published: "2005-11-07T11:37:56.000Z"
updated: "2005-11-07T16:30:11.000Z"
replies: 6
views: 598
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/137098-ta-ut-valt-värde-i-en-select"
---

# Ta ut valt värde i en select!

## #1 — paddan, 2005-11-07T11:37Z

Går det på något vis att spara ner värdet från en select i en variabel som sedan bestämmer vilken data som ska hämtas i en annan select. 

Så här typ:
Först har jag en select ruta som ej hämtas ifrån en databas. 

```
<option value="1">Test1</option>
<option value="2">Test2</option>
<option value="3">Test3</option>
```

 

Sen i en annan select vill jag ta värdet man valt i den första selecten och hämta data ifrån en databas. 

```

Visa = "SELECT * FROM test WHERE ID = " & valet ifrån select1 & " "

<option value="<%=rs("id")"%>><%=RS("rubrik")%></option>
```

Båda selecten ligger på samma sida!

Har ni några tips eller ideer?

Mvh Martin Sköld

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

## #2 — Peter S, 2005-11-07T11:50Z

Detta sköter du med hjälp av ASP:

```
<form action="samma_sida.asp">
  <select name="sel" onchange="this.form.submit()">
    <option value="1">Test1</option>
    <option value="2">Test2</option>
    <option value="3">Test3</option>
  </select>
</form>

<%
dim rq
rq = request.querystring("sel") & ""

if len(rq) > 0 and isnumeric(rq) then
  Visa = "SELECT * FROM test WHERE ID = " & clng(rq)

  ' ...
end if
%>
```

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

## #3 — paddan, 2005-11-07T12:37Z

Är inte prblemmet då att allt man har fyllt i i hela formuläret innan man kommer till select grejen så försvinner det eftersom man laddar om sidan..!

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

## #4 — Peter S, 2005-11-07T12:44Z

Jo, men då får du fånga upp de värdena och lägga in dem igen åt besökaren:

```
<input type="text" value="<%=[i]uppfångat värde här[/i]%>">
```

  :)

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

## #5 — paddan, 2005-11-07T12:58Z

Har löst det en bit nu..!

```
<form action="default.asp?page=2">
<select  name="sel" id="page" class="select_1" style="margin-bottom:0;" onchange="this.form.submit()">>

<option value="1" <%if page2 = 1 then%>selected="selected"<%end if%>>Startsidan</option>
<option value="2" <%if page2 = 2 then%>selected="selected"<%end if%>>Avdelningar</option>
<option value="3" <%if page2 = 3 then%>selected="selected"<%end if%>>Kassa</option>
<option value="5" <%if page2 = 5 then%>selected="selected"<%end if%>>Om oss</option>
<option value="6" <%if page2 = 6 then%>selected="selected"<%end if%>>Kontakt</option>						
<option value="7" <%if page2 = 7 then%>selected="selected"<%end if%>>Länkar</option>
	
</select>
 </form>
```

 
Problemet är adressen blir bara default.asp?sel="värdet man väljer"

MEn adressen ska vara default.asp?page=2&sel="värdet man väljer"

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

## #6 — Peter S, 2005-11-07T13:30Z

```
function updateSel(obj){
  location.href = obj.form.action += "&" + obj.name + "=" + obj.options[obj.selectedIndex].value;
}

<form onchange="updateSel(this)"
```

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

## #7 — Peter S, 2005-11-07T16:30Z

Du kan ju även använda AJAX, kom jag på. Ett exempel; sidan med formuläret

```
<style type="text/css">

#holder{ display: none; }

</style>

<script type="text/javascript">

function getReq(){
  return typeof(ActiveXObject) == "function" ?
	   new ActiveXObject("Microsoft.XMLHTTP") :
	     typeof(XMLHttpRequest) != "undefined" ? new XMLHttpRequest() : null;
}

function updateSel(obj, sel){
  var req = {o:getReq(),s:obj,t:sel};

  if (req){
    var id = obj.options[obj.selectedIndex].value;

    req.o.open("GET", "http://localhost/process.asp?id=" + id, true);
    req.o.onreadystatechange = function(){
      if (req.o.readyState == 4){
	parseAndUpdate(req);
      }
    }

    req.o.send(null);
  }
}

function parseAndUpdate(rt){
  var txt = rt.o.responseText,
      val = txt.match(/<value>((?:.|\n)*?)<\/value>/),
      hl  = txt.match(/<headline>((?:.|\n)*?)<\/headline>/);

  if (val && hl){
    rt.s.form.elements[rt.t].options[0] = new Option(val[1], hl[1]);
    document.getElementById("holder").style.display = "block";
  }
}

</script>

<form>
  <select name="sel" onchange="updateSel(this, 'sel2')">
    <option value="1">Test1</option>
    <option value="2">Test2</option>
    <option value="3">Test3</option>
  </select>
  <div id="holder">
    <select name="sel2"></select>
  </div>
</form>
```

Sedan skapar du en sida *process.asp*, som sköter databaskommunikationen:

```
<%

dim rq
rq = request.querystring("id")

if len(rq) > 0 and isnumeric(rq) then
  dim sql
  sql = "select id, rubrik from test where id = " & clng(rq)

  dim conn, rs
  set conn = server.createobject("adodb.connection")
  set rs   = server.createobject("adodb.recordset")

  conn.open "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("/[b]din_databas[/b].mdb")
  rs.open sql, conn

  if not rs.eof then
    response.write "<value>" & rs("id") & "</value><headline>" & rs("rubrik") & "</headline>"
  end if

  rs.close
  set rs = nothing
  conn.close
  set conn = nothing
end if

%>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/137098-ta-ut-valt-värde-i-en-select
