PDA

View Full Version : list boxes


suu
12-22-2003, 03:03 AM
hello!

on my page i've got two list boxes. the first feeds the second. and then the user clicks on a option of the second list box and opens a page or a file.
it's this last part i can't do. i don't know how to get the value of the second list box that the user clicked. i've been trying to use alerts to see if i can get it but nothing so far.
here's my code:

<SCRIPT language=JavaScript>
var aux,op1,op2;
var assocArray= new Object();

assocArray ["rede=interna"] = new Array("0","Instalações de Sacavém","1","Instalações dos E.U.A.","2","Instalações de Sá da Bandeira","3","Instalações de Vermoim");
assocArray ["rede=movel"] = new Array("0","Lista de Telemóveis","1","Lista de Telemóveis Total por Divisão","2","Lista de Telemóveis da Divisão CG","3","Lista de Telemóveis da Divisão CI",
"4","Lista de Telemóveis da Divisão CS","5","Lista de Telemóveis da Divisão EQ","6","Lista de Telemóveis da Divisão EX","7","Lista de Telemóveis da DivisãoFP",
"8","Lista de Telemóveis da Divisão GO","9","Lista de Telemóveis da DivisãoGS","10","Lista de Telemóveis da Divisão JR","11","Lista de Telemóveis da Divisão PE",
"12","Lista de Telemóveis da Divisão PP","13","Lista de Telemóveis da Divisão PR","14","Lista de Telemóveis da Divisão RH","15","Lista de Telemóveis da Divisão RT",
"16","Lista de Telemóveis da DivisãoSI");
assocArray ["rede=seg"] = new Array("0","Rede de Segurança","1","Novo Plano de Numeração");

function redeselected(Escolha)
{

var curform=Escolha.form;
clearcombo(curform.opcoes);
var newvalue=Escolha.name + "=" + Escolha.options[Escolha.selectedIndex].value;
aux=newvalue;
fillcombo(curform.opcoes,newvalue);
}

function clearcombo(Escolha)
{
for (var i=Escolha.options.length -1; i>=0;i--){
Escolha.options[i]=null;}
Escolha.selectedindex=-1;
}

function fillcombo(Escolha, vValue)
{
if (vValue!="" && assocArray[vValue])
{
var arrX = assocArray[vValue];
op2=arrX;
for (var i=0; i< arrX.length; i=i+2){
Escolha.options[Escolha.options.length]=new Option(arrX[i+1], arrX[i]);
}
} else Escolha.options[0]= new Option("Não Encontrada","");
}




function displayResult(Escolha) {
var msg="HELLO";
window.alert(aux);
window.alert(op1);
if assocArray[rede=seg]="1" then
{
window.alert ("opc2");
}
}
</SCRIPT>

</head>

<body topmargin="0" bgcolor="#FFFFFF">

<p style="margin-top: 0; margin-bottom: 0">&nbsp;</p>

<form name="Escolha">
<p style="margin-top: 0; margin-bottom: 0">&nbsp;

<select size="4" name="rede" onChange="redeselected(this);">
<OPTION value="interna" selected>Rede Interna
<OPTION value ="movel">Rede Móvel
<OPTION value="seg">Rede Segurança</OPTION>
</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<select name="opcoes" style="width:250;" size="4" onClick="displayResult(Escolha);">
<OPTION>Instalações de Sacavém
<OPTION>Instalações dos E.U.A.
<OPTION>Instalações de Sá da Bandeira
<OPTION>Instalações de Vermoim" </OPTION>


</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

</form>


--> the function displayResult is me trying to get what the user selected, so forget it.

beachbum
01-01-2004, 01:01 AM
Hey there..

This should do it.
Notice the function called:

ShowRes()

I tested this on ie6 and NS6, I don't know how backwards compatible it is.

if you have option values set like this:
<option value="1">Words</option>

then you can access the value by using .value instead of .text

I hope this helps.

<html>
<head>
<SCRIPT language=JavaScript>
var aux,op1,op2;
var assocArray= new Object();

assocArray ["rede=interna"] = new Array("0","Instalações de Sacavém","1","Instalações dos E.U.A.","2","Instalações de Sá da Bandeira","3","Instalações de Vermoim");
assocArray ["rede=movel"] = new Array("0","Lista de Telemóveis","1","Lista de Telemóveis Total por Divisão","2","Lista de Telemóveis da Divisão CG","3","Lista de Telemóveis da Divisão CI",
"4","Lista de Telemóveis da Divisão CS","5","Lista de Telemóveis da Divisão EQ","6","Lista de Telemóveis da Divisão EX","7","Lista de Telemóveis da DivisãoFP",
"8","Lista de Telemóveis da Divisão GO","9","Lista de Telemóveis da DivisãoGS","10","Lista de Telemóveis da Divisão JR","11","Lista de Telemóveis da Divisão PE",
"12","Lista de Telemóveis da Divisão PP","13","Lista de Telemóveis da Divisão PR","14","Lista de Telemóveis da Divisão RH","15","Lista de Telemóveis da Divisão RT",
"16","Lista de Telemóveis da DivisãoSI");
assocArray ["rede=seg"] = new Array("0","Rede de Segurança","1","Novo Plano de Numeração");

function redeselected(Escolha)
{

var curform=Escolha.form;
clearcombo(curform.opcoes);
var newvalue=Escolha.name + "=" + Escolha.options[Escolha.selectedIndex].value;
aux=newvalue;
fillcombo(curform.opcoes,newvalue);
}

function clearcombo(Escolha)
{
for (var i=Escolha.options.length -1; i>=0;i--){
Escolha.options[i]=null;}
Escolha.selectedindex=-1;
}

function fillcombo(Escolha, vValue)
{
if (vValue!="" && assocArray[vValue])
{
var arrX = assocArray[vValue];
op2=arrX;
for (var i=0; i< arrX.length; i=i+2){
Escolha.options[Escolha.options.length]=new Option(arrX[i+1], arrX[i]);
}
} else Escolha.options[0]= new Option("Não Encontrada","");
}

function ShowRes(ob) {
alert(ob.options[ob.selectedIndex].text);
}
</SCRIPT>
</head>
<body topmargin="0" bgcolor="#FFFFFF">
<p style="margin-top: 0; margin-bottom: 0"> </p>
<form name="Escolha">
<p style="margin-top: 0; margin-bottom: 0">
<select size="4" name="rede" onChange="redeselected(this);">
<OPTION value="interna" selected>Rede Interna
<OPTION value ="movel">Rede Móvel
<OPTION value="seg">Rede Segurança</OPTION>
</select>
<select name="opcoes" style="width:250;" size="4" onChange="ShowRes(this);">
<OPTION>Instalações de Sacavém
<OPTION>Instalações dos E.U.A.
<OPTION>Instalações de Sá da Bandeira
<OPTION>Instalações de Vermoim" </OPTION>
</select>
</form>
</body>