Tema: No mostrar
Ver Mensaje Individual
  #8 (permalink)  
Antiguo 21/07/2008, 09:30
pcadict0
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: No mostrar

Hola nuevamente Derkenuke!!!!!!

Ante todo, reiterarte mi más sincero agradecimiento por todas las molestias q t has tomado, no m cansaré d repetirlo. Gracias.


Por otro lado, debo d ser muy torpe ; pues no consigo hacer funcionar tu ejemplo

Esto es lo q tengo, siguiendo los pasos dados por ti:

Código PHP:
<!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" xml:lang="es" lang="es"> 
<
head> 
<
meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" /> 
<
meta name="Author" content="derkeNuke" /> 
<
title>Página nueva</title> 
<
style type="text/css"> 

</
style> 
</
head> 

<
body> 



<
form action="nuevo_combobox.html" method="GET" name="frm"  onsubmit="muestraElOculto()"> 
    <
select name="loc" onchange="cambiar(this.form.zona)"> 
        <
option>Cualquier ubicación</option> 
        <
option>Agaete</option> 
        <
option>Agüimes</option> 
    </
select> 
    <
select name="zona" style="visibility: hidden;">     
    </
select> 
    <
label>
    <
input name="Submit" type="submit" onclick="muestraElOculto()" value="Enviar" />
    </
label>
</
form> 



<
script type="text/javascript"> 
<!-- 


function 
addOpt(oCntrl, iPos, sTxt, sVal){ 
    var 
selOpcion=new Option(sTxt, sVal); 
    eval(
oCntrl.options[iPos]=selOpcion); 
} 
function 
cambiar(oCntrl){ 
    while (
oCntrl.length) oCntrl.remove(0); 
    
oCntrl.style.visibility="visible"; 
    switch (
document.frm.loc.selectedIndex){ 
        case 
0: 
        
oCntrl.style.visibility="hidden"; 
        break; 
        case 
1: 
        
addOpt(oCntrl, 0, "Cualquier ubicación", "%%"); 
        
addOpt(oCntrl, 1, "Puerto de las Nieves", "(Puerto de Las Nieves)"); 
        
addOpt(oCntrl, 2, "Valle de Agaete", "(Valle de Agaete)"); 
        break; 
        case 
2: 
        
addOpt(oCntrl, 0, "Cualquier ubicación", "%%"); 
        
addOpt(oCntrl, 1, "Villa de Agüimes", "(Villa de Agüimes)"); 
        
addOpt(oCntrl, 2, "Cruce de Arinaga", "(Cruce de Arinaga)"); 
        
addOpt(oCntrl, 3, "Playa de Arinaga", "(Playa de Arinaga)"); 
        
addOpt(oCntrl, 4, "Polígono industrial de Arinaga", "(Polígono industrial de Arinaga)"); 
        break; 
    } 
} 

function 
muestraElOculto() { 
    var 
comoEstaba = document.frm.zona.style.visibility; 
    
document.forms["frm"].zona.style.visibility = "visible"; 
    
setTimeout("document.frm.zona.style.visibility='"+comoEstaba+"'", 100); 
}  

// --> 
</script> 
<script type="text/javascript"> 
<!-- 

function muestraElOculto() { 
    var comoEstaba = document.frm.zona.style.visibility; 
    document.forms["frm"].zona.style.visibility = "visible"; 
    setTimeout("document.frm.zona.style.visibility='"+comoEstaba+"'", 100); 
}  

// --> 
</script> 


</body> 
</html> 
Ciertamente, tienes toda la razón con lo d la línea esta
Código HTML:
addOpt((oCntrl.style.visibility="hidden")== 0, "","%%"); 
Es completamente ilógica y absurda. Sobra la mitad d la línea, d hecho sobra todo lo q yo le he añadido. Es el fruto d la desesperación cuando no tienes más recursos para hacerlo bien. M puse a probar y a retocar tu ejemplo a ver si conseguía q además d ocultar a la vista el campo zona pasase también su valor. Pero no funcionó y lo dejé "tal cual" mi último y frustrado intento. Al menos no da error (funciona tal y como lo hacía tu ejemplo aunque evidentemente con más caracteres sobrantes).

Nuevamente gracias infinitas
Un saludo