Avatar billede l_otto Nybegynder
15. februar 2005 - 10:00 Der er 4 kommentarer og
1 løsning

create category then subcategory

hi..

I need some script..

here is the first dropdown:

sport:
footboll
handball
skiiing

when you choose football is should generate a second dropdown.

type off player:
let wing
goal keeper

if I instead choose skiing it should generate:
type off player:
salom
skijump


how to do this ? i asp
Avatar billede mortency Nybegynder
15. februar 2005 - 10:02 #1
Avatar billede eagleeye Praktikant
15. februar 2005 - 11:01 #2
If you don't want the page to reload when sport is selected you need some javascript function to fill the second select box. Where does the data to the second select come from, is it a single table or a table for each sport?

This code has two drop down and the second is depending one the first:


<html>
<head>
<%
set Conn = server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db1.mdb")

'Build the array for the javascript function

  Set rs = Server.CreateObject("ADODB.Recordset")
  SQL = "SELECT sport_id, sport, sel2_id, sel2 FROM tabeller ORDER BY sport_id, sel2"
  Set rs = Conn.Execute (SQL)
  %>
  <script language="javascript" type="text/javascript">
  var arr = [
  <%
  oldValg1 = ""
  do while not rs.EOF
    if Cstr(oldValg1) <> CStr(rs("sport_id")) then
      Response.write "['" & rs("sport_id") & "¤¤¤" & rs("sport") & "', [" & vbCrLf
      oldValg1 = rs("sport_id")
    end if
    Response.write "'" & rs("sel2_id") & "¤¤¤" & rs("sel2") & "'"
 
    rs.Movenext

    if not rs.EOF then
      endValg = false
      if CStr(oldValg1) <> CStr(rs("sport_id")) then
        Response.write "]]"
        endValg = true
      end if
      Response.write ","
      if endValg = true then response.write vbCrLf
    else
      Response.write "]]"
    end if
  loop
  rs.Close
  Set rs=Nothing
  %>
  ];
  </script>

<script language="javascript" type="text/javascript">
function initSels(){
createOpts(document.getElementById('sport'));
}

function createOpts(sel){
var s = new Array();
var num = 0, txt = "arr";
var ar = opt = null;
var n = sel.selectedIndex;
var args = createOpts.arguments.length;
for(var i=1;args>i;i++){
  s[i-1] = document.getElementById(createOpts.arguments[i]);
  if(s[i-1]==sel)num=i;
}
if(args>1){
  if(s[num])sel = s[num];
  else return;
}
if(n==0&&args>1){
  for(i=num;args>i+1;i++){
  s[i].length = 0;
  opt = document.createElement('OPTION');
  s[i].appendChild(opt);
  opt.value = "";
  opt.text = "\74-- Vælg --";
  }
  return true
};
for(i=0;num>i;i++){
  txt+="["+(s[i].selectedIndex-1)+"][1]";
}
ar = eval(txt);
sel.length = 0;
opt = document.createElement('OPTION');
sel.appendChild(opt);
  opt.value = "";
  opt.text = "-- Vælg --";
for(i=0;ar.length>i;i++){
  opt = document.createElement('OPTION');
  sel.appendChild(opt);
  if(typeof ar[i] == 'object'){
    var str = ar[i][0];
    tarr=str.split("¤¤¤");
    opt.value = tarr[0];
    opt.text = tarr[1];
  }else{
    var str = ar[i];
    tarr=str.split("¤¤¤");
    opt.value = tarr[0];
    opt.text = tarr[1];
  }
}
if(args>num+2){
  for(i=num+1;args-1>i;i++){
  s[i].length = 0;
  opt = document.createElement('OPTION');
  s[i].appendChild(opt);
  opt.value = "";
  opt.text = "\74-- Vælg --";
  }
}
}
</script>
</head>
<body onload="initSels()">
<form name="sels" action="">
<select name="sport" id="sport" onchange="createOpts(this,'sport','sel2');">
<option value="" selected>Vis alle</option>
</select>
<br><br>
<select name="sel2" id="sel2">
<option value="" selected >&lt;-- Vælg --</option>
</select>
<br><br>
<input type="submit" name="send" value="send">
</from>

</body>
</html>



If you don’t want the javascript or don’t care if the page reloads when sport is selected you can fill the sport drop down and add an OnChange event that reload the pages to fill the second drop down depending of the selected sport.
Avatar billede l_otto Nybegynder
15. februar 2005 - 11:53 #3
the page should not reload :-)

the data for the second dropdown comes from at sql db tabel...
Avatar billede eagleeye Praktikant
15. februar 2005 - 11:55 #4
The try the code I have posted.
You ccan cahnge the SQL to match your tables:

  SQL = "SELECT sport_id, sport, sel2_id, sel2 FROM tabeller ORDER BY sport_id, sel2"
Avatar billede l_otto Nybegynder
15. februar 2005 - 12:14 #5
i´ll try :-) thanx
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
Kurser inden for grundlæggende programmering

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

IT-JOB

Zealand – Sjællands Erhvervsakademi S/I

Erfaren IT-projektleder med stærk teknisk indsigt

Forsvarets Efterretningstjeneste

FE søger PKI-specialist

TD SYNNEX Denmark ApS

Sales Coordinator