Ver Mensaje Individual
  #14 (permalink)  
Antiguo 13/07/2012, 19:54
furoya
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Respuesta: link dependiente de un select

Cita:
Iniciado por carlod_39 Ver Mensaje
... lo que pasa es que respondieron tan rápido que pensé que ya se avía entendido


==========================================


Cita:
Iniciado por racba Ver Mensaje
Hola emprear:
Revise tu codigo y esta barbaro.
Sí, como de costumbre. Yo no se lo digo porque parece que fuera un chupamedias.

Lo que no me exime de agregar algo más.

emprear : El asunto que me llamó la atención del ejemplo de racba, es que si bien ya es C&P, no deja de ser didáctico. Y encima cubre esa falta de precisión original que todavía seguimos comentando.

Si bien yo hubiese empezado a probar con nodos, él prefirió el innerHTML, que es más fácil de entender.
Porque resulta que otra cosa que se podía "cambiar" era el contenido del anchor.

La lógica sería así : para cambiar el href podemos hacerlo de la manera fácil, tal como lo pusiste tú

Código:
...
document.getElementById('destino').href = "";
...
pero para cambiar el texto o vas a los nodos o mueres en el innerHTML.
¡Y para eso se explica todo en innerHTML!

Tu idea es usar un escript que dependa del selector.
El ejemplo anterior hace depender el select de un array.
Aunque no totalmente.

El siguiente paso sería crear también los option dependiendo de los elementos de array's.
Un mecanismo del tipo BDAL (Base de Datos Avant la Lettre) sobre listas en cada script.

Y por supuesto, usando también innerHTML.

Código:
<!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>cambiar href</title>
<script type="text/javascript">
//<![CDATA[
var _link = new Array('milink0', 'milink1', 'milink2');

//var _dest = new Array());

var _optioncant = _link.length;

var _select;

function llenar_selector(){
var _optiontotal = "";

_select = document.getElementById('id_select');

for (i=0; i< _optioncant; i++){
_optiontotal += "<option value=\""+ _link[i] +"\">"+ _link[i] +"</option>\r\n";
}

_select.innerHTML = _optiontotal;

}


function cambiar_link(){

var _div = document.getElementById('id_div');

_option=_select.options[_select.selectedIndex].index;

for (i=0; i< _optioncant; i++){
if (i == _option){
_div.innerHTML = "<a href=\"http://www."+ _select.options[i].value +".com\">"+ _select.options[i].text +"</a>";
break;
}
}

}

//]]>
</script>
</head>
<body>
<form>
<select id="id_select" onchange="cambiar_link()" 
onmousedown="llenar_selector(); this.removeAttribute('onmousedown')">
<option>OPCIONES</option>
</select>

<span id='id_div'></span>
</form>

</body>
</html>

[Nota : a mi me gusta más desvirtuar los temas, pero éste puede seguir mejorando. Para llevarlo a cualquier lado, siempre hay tiempo.]