double combo - pomoc przy skrypcie

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
ibimg
Posty: 1
Rejestracja: sob lip 30, 2005 1:21 pm

double combo - pomoc przy skrypcie

Post autor: ibimg »

Witam!

Mam kilka pytań dotyczacych skryptu Triple Combo.
1. Przerobilem ten skrypy tak, aby byly tylko dwie rozwijane listy. Poniewaz nie znam javascript wiec prosze Was o sprawdzenie ponizszego kodu:

Kod: Zaznacz cały

<FORM name="isc">
<table border="0" cellspacing="0" cellpadding="0">
  <tr align="center"> 
    <td nowrap height="11">  

<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option selected>---wybierz kategorie---</option>
<option>kat. 1</option>
<option>kat. 2</option>
<option>kat. 3</option>
</select>

<select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">
<option value=" " selected>---wybierz link---</option>
</select>

<script>
<!--

/*
Triple Combo Script Credit
By Hamid Cheheltani/ JavaScript Kit (http://www.javascriptkit.com)
Visit http://javascriptkit.com for this and over 400+ other scripts
*/

var groups=document.isc.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("---wybierz link---"," ")

group[1][0]=new Option("---wybierz link---"," ")
group[1][1]=new Option("link11","http://webinside.pl")
group[1][2]=new Option("link12","http://webinside.pl")
group[1][3]=new Option("link13", "http://webinside.pl")

group[2][0]=new Option("---wybierz link---"," ")
group[2][1]=new Option("link21","http://webinside.pl")
group[2][2]=new Option("link22","http://webinside.pl")
group[2][3]=new Option("link23","http://webinside.pl")

group[3][0]=new Option("---wybierz link---"," ")
group[3][1]=new Option("link31","http://webinside.pl")
group[3][2]=new Option("link32","http://webinside.pl")
group[3][3]=new Option("link33","http://webinside.pl")

var temp=document.isc.stage2

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}


var temp1=document.isc.stage2
function redirect1(y){
for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null
for (i=0;i<group[document.isc.example.options.selectedIndex][y].length;i++){
temp1.options[i]=new Option(group[document.isc.example.options.selectedIndex][y][i].text,group[document.isc.example.options.selectedIndex][y][i].value)
}
temp1.options[0].selected=true
}

function redirect1(z){
window.location=temp1[z].value
}

//-->
</script>

    </td>
  </tr>
</table>
</FORM>
2. Pytanie drugie dotyczy odswierzania tego skryptu, a mienowicie jesli z pierwszej listy wybiore kat.1 to w liscie drugiej zostana zaladowane linki: link11, link12, link13 - czyli wszystko ok. Wybieram link np: link12 i ide do strony o podanym adresie ale jak dam wstecz to na liscie pierwszej mam uprzednio wybrana kat.1 ale w drugiej liscie jest pusto.(trzeba wybrac z listy kategorii np: kat.2 i wrocic do kat.1 aby zaladowal do listy drugiej ponownie wszystkie linki kat.1 - nie wyglada to najlepiej)
Prosze Was napiszcie w jaki sposob przerobic ten skrypt:
a) aby po wybraniu wstecz lub odswierzeniu strony na pierwszej liscie byla zaladowana uprzednio wybrana kategoria a w liscie linki byly umieszczone wszystkie linki nalezace do tej kategorii.
b) lub aby po odswierzeniu strony czyscil obie listy wracajac do samego poczatku a nie zostawial uprzednio wybrana kategorie (kat.1)

p.s opcja a) byla by najlepsza ;-)
ODPOWIEDZ