Tema: No mostrar
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/07/2008, 10:28
pcadict0
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: No mostrar

Hola derkenuke!!!!

Tú código funciona d maravilla, oculta el campo "zona" cuando no debe d mostrarlo. Pero desafortunadamente no pasa el valor del campo "zona" por la URL cuando este campo está oculto.

He "peinado" toda la red en busca d algo parecido pero no ha habido suerte
He probado a poner variables d URL, pero no tiene demasiado sentido pues al hacer un evento "onchange" no pasa nada por la URL hasta q no se ha enviado el formulario. Por ello he incluso buscado la manera d hacer q al apretar el botón se envíe 2 veces (aunque quede muy cutre) para q una vez enviada la primera vez tome el valor d la URL y muestre el campo zona como es debido.
He probado también a poner un campo oculto llamado "zona", para q cuando el campo de igual nombre ("zona") esté oculto pues lo mande igual. Pero así no funciona la función d javascript, al haber una "zona" como campo oculto y otro como menú de lista.
He intentado todo lo q estaba a mi alcance (q desgraciadamente no es mucho) para hacer q pase el valor del campo zona cuando éste no existe y sea enviado. Pero no sé más.

he puesto el código tuyo en un ejemplo q funciona (tal y como m pediste ;) por si tuvieses ocasión d mirártelo. Seguro q podrías dar con alguna solución.
Si bien, aunque no contestes, t estaré igualmente enormemente agradecido x todo lo q has hecho ya por mi.

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 name="frm" method="GET" action="/prueba_combobox.php">
               <select name="loc" onchange="cambiar(this.form.zona)">
                <option value="%%" <?php if (!(strcmp("%%"$_GET['loc']))) {echo "selected=\"selected\"";} ?>>Cualquier ubicación</option>
                 <option value="Agaete" <?php if (!(strcmp("Agaete"$_GET['loc']))) {echo "selected=\"selected\"";} ?>>Agaete</option>
                 <option value="Aguimes" <?php if (!(strcmp("Aguimes"$_GET['loc']))) {echo "selected=\"selected\"";} ?>>Aguimes</option>
               </select>

               <?php if($_GET['loc'] == 'Agaete') { ?>
               <select name="zona" style="visibility: visible;"> 
               <option value="%%" <?php if (!(strcmp("%%"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Cualquier ubicación</option>
               <option value="(Puerto de Las Nieves)" <?php if (!(strcmp("(Puerto de Las Nieves)"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Puerto de Las Nieves</option>
               <option value="(Valle de Agaete)" <?php if (!(strcmp("(Valle de Agaete)"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Valle de Agaete</option>
               </select> 
               <?php ?>    
               
               <?php if($_GET['loc'] == 'Aguimes') { ?>
               <select name="zona" style="visibility: visible;"> 
               <option value="%%" <?php if (!(strcmp("%%"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Cualquier ubicación</option>
               <option value="(Villa de Agüimes)" <?php if (!(strcmp("(Villa de Agüimes)"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Villa de Agüimes</option>
               <option value="(Cruce de Arinaga)" <?php if (!(strcmp("(Cruce de Arinaga)"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Cruce de Arinaga</option>
               <option value="(Playa de Arinaga)" <?php if (!(strcmp("(Playa de Arinaga)"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Playa de Arinaga</option>                       
               <option value="(Polígono industrial de Arinaga)" <?php if (!(strcmp("(Polígono industrial de Arinaga)"$_GET['zona']))) {echo "selected=\"selected\"";} ?>>Polígono industrial de Arinaga</option>      
               </select> 
               <?php ?>    
               
               <?php if($_GET['loc'] == '%%') { ?>
               <select name="zona" style="visibility: hidden;"> 
               <option value="%%" <?php if (!(strcmp("%%"$_GET['zona']))) {echo "selected=\"selected\"";} ?>></option>
               </select> 
               <?php ?>                   
               
               <label></label>
               <input type="submit" name="Submit" value="Enviar" />
               </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: 
        addOpt((oCntrl.style.visibility="hidden")== 0, "","%%"); 
        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; 
    } 




// --> 
</script>
</body> 
</html>
¡Un millón d gracias otra vez; Salu2!!!