Avatar billede trekkies Juniormester
05. maj 2005 - 15:56 Der er 17 kommentarer og
1 løsning

Vælg i dropdown og ny dropdown kommer frem.

Hej alle sammen

Jeg har en side hvor at man skal vælge noget i en dropdown, derefter kommer er en ny dropdown frem, man skal nu vælge noget der i, og derefter kommer en tekstboks frem hvor at man kan skrive noget i, men hvordan laver jeg lavet sådan en funktion?

P.S. Man skal ikke skifte side, men være på den samme side hele tiden.
Avatar billede roenving Novice
05. maj 2005 - 15:58 #1
-- og den anden boks skal skifte indhold efter hvad der er valgt i den første ?-)
Avatar billede trekkies Juniormester
05. maj 2005 - 16:00 #2
Jeps, det er rigtigt.
Avatar billede roenving Novice
06. maj 2005 - 12:38 #3
F.eks. kan man gøre sådan:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<title>Tomt dokument</title>
<meta name="keywords" content="søgeord adskilt af komma">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:0px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
var models = new Array();
models[models.length] = ["234","235","224","24","4","5"];
models[models.length] = ["245","247","C23","Q13","645"];
models[models.length] = ["323","626","929"];

function showModels(elm){
  elm.form.text.style.display = 'none';
  var sel = elm.form.select2;
  if(elm.selectedIndex==0){
    sel.style.display = 'none';
  }else{
    sel.length = 1;
    var arrNum = elm.selectedIndex-1;
    for(i=0;models[arrNum].length>i;i++){
      sel.options[sel.length] = new Option(models[arrNum][i]);
      sel.style.display = 'inline';
    }
  }
}
</script>
</head>
<body>
<form id="minForm" name="minForm">
Vælg mærke:<br>
<select name="minSelect" id="minSelect" onchange="showModels(this);">
  <option value="">-- Vælg her --<br>
  <option value="1">BMW<br>
  <option value="2">Volvo<br>
  <option value="3">Mazda<br>
</select>
<br>Vælg model:<br>
<select name="select2" id="select2" style="display:none;" onchange="this.form.text.style.display=this.selectedIndex>0?'inline':'none';">
  <option value="">-- Vælg her --<br>
</select>
<br>Supplerende tekst:
<input type="text" name="text" style="display:none;">
<br>
<input type="submit" value="send">
</form>

</body>

</html>
Avatar billede trekkies Juniormester
06. maj 2005 - 16:55 #4
Hej roenving
Det virker perfekt, men jeg vil gerne hente oplysningerne fra en database, den virker bare ikke, her er min kode, kan du se hvad jeg har lavet forkert?
<script language="javascript" type="text/javascript">
var models = new Array();
models[models.length] = ["234","235","224","24","4","5"];
models[models.length] = ["245","247","C23","Q13","645"];
models[models.length] = ["323","626","929"];

function showModels(elm){
  elm.form.text.style.display = 'none';
  var sel = elm.form.version;
  if(elm.selectedIndex==0){
    sel.style.display = 'none';
  }else{
    sel.length = 1;
    var arrNum = elm.selectedIndex-1;
    for(i=0;models[arrNum].length>i;i++){
      sel.options[sel.length] = new Option(models[arrNum][i]);
      sel.style.display = 'inline';
    }
  }
}
</script>
<form>
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../log/problemer.mdb")

    strSQL = "SELECT * FROM system"
    strSQL1 = "SELECT * FROM version"
   
    Set rs = conn.execute(strSQL)
    Set rs1 = Conn.Execute(strSQL1)
%>


<h3>Her kan du skrive hvis du har problemer med Prime Sorter:</h3>
<p />
<br />
Jeg vil gerne bede om følgende oplysninger:
<p />
Hvilket styresystem har du:
    <br />

<select size="1" name="system" id="system" onchange="showModels(this);">
<option selected value="">Vælg dit styresystem:</option>
<%
    DO WHILE NOT rs.EOF
    id = rs("id")
    system = rs("system")
%>
<option value="<%=id%>"><%=system%></option>
<%
    rs.movenext
    LOOP
%>
</select>
<p />
Hvilken version har du:
<br />
<select size="1" name="version" id="version" style="display:none;" onchange="this.form.text.style.display=this.selectedIndex>0?'inline':'none';">
<option selected value="">Vælg din version:</option>
<%
    DO WHILE NOT rs1.EOF
    id = rs1("id")
    version = rs1("version")
%>
<option value="<%=id%>"><%=version%></option>
<%
    rs1.movenext
    LOOP
%>
</select>

<p />
Hvad er fejlen:
    <br />
<textarea name="fejl" id="fejl" rows="10" cols="30" style="display:none;">
</textarea>
<p />
<input type="submit" value="Send oplysninger" id="send" name="send">
<%
    rs.close
    rs1.close
    Conn.Close
    set Conn = nothing
    Set strSQL = nothing
    set strSQL1 = nothing
%>
</Form>
Avatar billede trekkies Juniormester
23. maj 2005 - 08:43 #5
Hej roenving

Kan du ikke hjælpe mig med mit problem med min database og din funktion?
Avatar billede roenving Novice
23. maj 2005 - 15:18 #6
Du må jo lave en dobbelt løkke for at få det til at fungere, i pseudo-kode bliver det sådan:

<script type="text/javascript">
var models = new Array();
<%

Set rs = conn.execute("SELECT * FROM system")

do while not rs.eof
%>
models[models.length] = [

<%

Set rs1 = conn.execute("SELECT * FROM version where systemid=" + rs("id"))

do while not rs1.eof
Response.Write """" + rs1("version") + """"
rs1.movenext

if not rs1.eof then Response.Write ","
loop

Response.Write "];
"

rs.movenext
loop
%>
</script>

-- og så senere i scriptet skriver du kun til den første select-ting !-)
Avatar billede trekkies Juniormester
22. juni 2005 - 23:00 #7
Undskyld den lange venteiden :)

Jeg har brugt dit første eksempel, det virker fint, men jeg vil også gerne have teksten til at komme frem når at man har valgt noget, klik på linket for at se hvad jeg mener:
http://www.darkskies.dk/besked.jpg
Avatar billede trekkies Juniormester
28. juni 2005 - 16:29 #8
Kan du ikke hjælpe mig roenving?
Avatar billede roenving Novice
28. juni 2005 - 16:40 #9
Tjoh, det kan jeg vel, hvis jeg har noget kode ...

-- men hvis du kigger i eksemplet kan du se, hvordan man gør ...

-- med en gruppe felter bliver det:

<select name="stSystem" onchange="showModels(this);document.getElementById('nextGroup').style.display=this.selectedIndex>0?'block':'none';">
...
</select>

<div id="nextGroup" style="display:none;">
Hvilken version har du:<br>
<select name="version" onchange="document.getElementById('lastGroup').style.display=this.selectedIndex>0?'block':'none';">
...
</select>

<div id="lastGroup" style="display:none;">
Hvad er fejlen:<br>
<textarea name="fejl" cols="60" rows="5"></textarea>
<br>
<br>
<input type="submit" value="Send oplysninger">

</div>
</div>
</form>
Avatar billede trekkies Juniormester
28. juni 2005 - 17:04 #10
Nu virker det næsten, men min textarea kommer ikke med, har det noget at gøre mit script?

Her er scriptet:
<script type="text/javascript">
var models = new Array();
models[models.length] = ["0.1"]; // Windows 95
models[models.length] = ["0.1"]; // Windows 98
models[models.length] = ["0.1"]; // Windows NT
models[models.length] = ["0.1"]; // Windows 2000
models[models.length] = ["0.1"]; // Windows ME
models[models.length] = ["0.1"]; // Windows XP
models[models.length] = ["0.1"]; // Windows XP - 64bit

function showModels(elm){
  elm.form.fejl.style.display = 'none';
  var sel = elm.form.version;
  if(elm.selectedIndex==0){
    sel.style.display = 'none';
  }else{
    sel.length = 1;
    var arrNum = elm.selectedIndex-1;
    for(i=0;models[arrNum].length>i;i++){
      sel.options[sel.length] = new Option(models[arrNum][i]);
      sel.style.display = 'inline';
    }
  }
}
</script>

I starten vælges styresystemet, derefter videre til version og så skal fejl komme, eller har jeg misforstået det?
Avatar billede trekkies Juniormester
06. juli 2005 - 19:42 #11
Hej roenving
Kigger du lige på det jeg har skrevet før :)
Avatar billede roenving Novice
06. juli 2005 - 19:48 #12
Kan du ikke prøve at lægge dit forsøg op ?-)
Avatar billede trekkies Juniormester
06. juli 2005 - 19:58 #13
Her er linket:
http://www.darkskies.dk/medlem/test3.asp

Når at man klikker sig frem, så kommer min textarea ikke med, og det vil jeg gerne have :)


Sådan kommer siden ikke til at se ud, når at den er færdig.
Avatar billede roenving Novice
06. juli 2005 - 20:05 #14
-- du har da heller ikke gjort, som jeg viste, for ideen er, at man fortsætter med at neste nye elementer ind i over-elementerne ...

-- men script-udgaven var lavet til, at det kun var enkelt-elementer, der skulle vises/skjules, så denne linje:

  elm.form.fejl.style.display = 'none';

skal ændres til:

document.getElementById('lastGroup').style.display="none";
Avatar billede trekkies Juniormester
06. juli 2005 - 20:09 #15
Mange tak for det, nu virker det :)

Smider du et svar :)

Du får lidt flere point fordi at du kunne holde mig ud i så lang tid :>
Avatar billede roenving Novice
06. juli 2005 - 20:21 #16
Velbekomme '-)
Avatar billede roenving Novice
06. juli 2005 - 20:30 #17
-- og tak for point ;~}
Avatar billede breum Nybegynder
16. juni 2006 - 18:20 #18
Vil nogen hjælpe på http://www.eksperten.dk/spm/715898
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