Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2011, 03:06
elmismodesiempre1
 
Fecha de Ingreso: enero-2011
Mensajes: 16
Antigüedad: 13 años, 4 meses
Puntos: 1
Listas Dependientes

Vereis necesito enlazar 2 listas de forma dependiente la una de la otra y he encontrado el siguiente código que me puede valer pero me hace falta que cada una de las ciudades que aparece en la segunda lista tenga un enlace con una determinada direccion web ejemplo:(http://mipagina.com)y necesito un boton para que al seleccionar la ciudad lo pulse y me enlace con la direccion web que corresponde con esa ciudad. Tengo que deciros que mis conocimientos son minimos por eso no utilizo PHP ni bases de datos ni ninguna otra cosa porque el Javascript ya de hecho me desborda.


*****************************************
*****************************************
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Listas desplegables dependientes 2</title>
</head>

<p align="center"><b>Listas desplegables dependientes 2
<script LANGUAGE="JavaScript">


<!-- Begin
var africaArray = new Array("('Selecciona país','',true,true)",
"('Ethiopia')",
"('Somalia')",
"('South Africa')",
"('Other')");
var middleeastArray = new Array("('Select country','',true,true)",
"('Egypt')",
"('Iran')",
"('Israel')",
"('Kuwait')",
"('Other')");
var asiaArray = new Array("('Select country','',true,true)",
"('Armenia')",
"('Bangladesh')",
"('Cambodia')",
"('China')",
"('Other')");
var europeArray = new Array("('Select country','',true,true)",
"('Albania')",
"('Austria')",
"('Belarus')",
"('Belgium')",
"('Other')");
var australiaArray = new Array("('Select country','',true,true)",
"('Australia')",
"('New Zealand')",
"('Other')");
var lamericaArray = new Array("('Select country','',true,true)",
"('Costa Rica')",
"('Cuba')",
"('El Salvador')",
"('Guatemala')",
"('Other')");
var namericaArray = new Array("('Select country','',true,true)",
"('Canada')",
"('USA')",
"('Other')");
var samericaArray = new Array("('Select country','',true,true)",
"('Argentina')",
"('Bolivia')",
"('Brazil')",
"('Chile')",
"('Other')");
function populateCountry(inForm,selected) {
var selectedArray = eval(selected + "Array");
while (selectedArray.length < inForm.country.options.length) {
inForm.country.options[(inForm.country.options.length - 1)] = null;
}
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.country.options[i]=" + "new Option" + selectedArray[i]);
}
if (inForm.region.options[0].value == '') {
inForm.region.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0);
}
else {
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0);
}
}
}
}
}
function populateUSstate(inForm,selected) {
var stateArray = new Array("('Select State','',true,true)",
"('Alabama')",
"('Alaska')",
"('Arizona')",
"('Arkansas')",
"('Wyoming')");
if (selected == 'USA') {
for (var i=0; i < stateArray.length; i++) {
eval("inForm.country.options[i]=" + "new Option" + stateArray[i]);
}
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0)
}
else {
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0)
}
}
}
}
else {
}
if (selected == 'Other') {
newCountry = "";
while (newCountry == ""){
newCountry=prompt ("Please enter the name of your country.", "");
}
if (newCountry != null) {
inForm.country.options[(inForm.country.options.length-1)]=new Option(newCountry,newCountry,true,true);
inForm.country.options[inForm.country.options.length]=new Option('Other, not listed','Other');
}
}
if(inForm.country.options[0].text == 'Select country') {
inForm.country.options[0]= null;
}
}
// End -->
</script>
</head>

<!-- STEP TWO: Add the last coding to the BODY of your HTML document -->
</b>
<body>

</p>

<center>
<form name="globe">
<p>
<select name="region" onChange="populateCountry(document.globe,document. globe.region.options[document.globe.region.selectedIndex].value)">
<option selected>Selecciona Región</option>
<option value="asia">Asia</option>
<option value="africa">Africa</option>
<option value="australia">Australia</option>
<option value="europe">Europa</option>
<option value="middleeast">Medio Oriente</option>
<option value="lamerica">América Latina</option>
<option value="namerica">América del Norte</option>
<option value="samerica">América del Sur</option>
</select>
<select name="country" onChange="populateUSstate(document.globe,document. globe.country.options[document.globe.country.selectedIndex].text)">
<option value>&lt;--------------------</option>
</select> </p>
</form>
</center>
<p></p>
<center>
<p>&nbsp;</p>
</center>
<p></p>

</body>

</html>

*****************************************
Para explicarme un poco mejor os dire que el código anterior funciona bien pero me falta añadir algo para que realice lo que necesito y ahí esta el problema, necesitaria algo parecido a lo que añado a continuación (que es un trozo del código original anterior):

**********Ejemplo Original******************

var europeArray = new Array("('Select country','',true,true)",
"('Albania')",
"('Austria')",
"('Belarus')",
"('Belgium')",
"('Other')");
*****************************
después de nombre del país preciso un vinculo o enlace externo algo parecido a lo que pongo en los 2 ejemplos que esta a continuación pero que por supuesto estos ejemplos solo son eso y no funcionan.

******2 Ejemplos de algo parecido a lo que necesito (no funcionan)**********

var europeArray = new Array("('Select country','',true,true)",
"('Albania')"(http://www.mipaginaweb.com),
"('Austria')"(http://www.tupaginaweb.com),
"('Belarus')"(http://www.otrapaginaweb.com),
"('Belgium')"(http://www.cuartapaginaweb.com),
"('Other')");
************************************************** **************
O algo parecido a este otro tipo de código:
<option value="http://www.Albania.com">Albania</option>
<option value="http://www.Austria.com">Austria</option>
<option value="http://www.belarus.com">Belarus</option>

***************************************
Pero esto anterior tal cual no funciona en el código que he adjuntado al principio y eso o algo muy parecido es lo que necesito, ¿que debo cambiar y de que manera para que pueda añadirle un enlace parecido a lo expuesto en los ejemplos anteriores?.

Y para finalizar preciso poner un botón tipo (Ir) o (Buscar) para que una vez seleccionado pueda pulsar y ir a ese enlace, porque en el ejemplo que adjunto cuando seleccionas en las 2 listas dependientes el código no hace nada

Gracias por vuestra ayuda: