Ver Mensaje Individual
  #12 (permalink)  
Antiguo 29/05/2010, 09:19
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: formulario HTML dinamico

Hola amigo, bueno verás el manejo del JS dentro de las etiquetas HTML estan incorrectas para la funcion que hemos creado, sin embargo si modificamos un poco el script entonces la forma en la que ejecutas la funcion sería correcta.

Pasemos a ver como lo modificaremos.

Primero tenemos la siguiente funcion:
Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2.   function showOptions(s,h){
  3.         document.getElementById(s).style.display = 'block';
  4.         document.getElementById(h).style.display = 'none';
  5.   }
  6. </script>

En la linea 2 podemos agregar tantas letras queramos en el parentecis, (cada una que corresponda al nombre de cada etiqueta que querramos mostrar u ocultar)

ejemplo.

a: La etiqueta que mostraras
b: las etiquetas ocultas
c: las etiquetas ocultas
d: las etiquetas ocultas

Por lo tanto podemos modificar esta linea de la sig manera:

Código Javascript:
Ver original
  1. function showOptions(a,b,c,d){

Y por ultimo hay que programar la funcion, pasemos a decir que etiquetas se muestra mientras cuales se deben ocultar, esto lo haremos de la sig manera.

Código Javascript:
Ver original
  1. document.getElementById(a).style.display = 'block';
  2. document.getElementById(b).style.display = 'none';
  3. document.getElementById(c).style.display = 'none';
  4. document.getElementById(d).style.display = 'none';

Por lo tanto el código completo quedaría de la sig manera

Código HTML:
Ver original
  1. <fieldset><legend>Tipo de Punto de Interés:</legend>
  2.    
  3.    
  4.     <script language="javascript" type="text/javascript">
  5.  
  6.         function showOptions(a,b,c,d){
  7.    
  8.               document.getElementById(a).style.display = 'block';
  9.    
  10.               document.getElementById(b).style.display = 'none';
  11.               document.getElementById(c).style.display = 'none';
  12.               document.getElementById(d).style.display = 'none';
  13.  
  14.         }
  15.  
  16.       </script>
  17.  
  18.       </head>
  19.  
  20.       <body>
  21.  
  22.       <form action="routing.php" method="post">
  23.  
  24.             <select>
  25.  
  26.              <option onclick="showOptions('restaurante','hotel','pub','bar');">Restaurante</option>
  27.  
  28.              <option onclick="showOptions('hotel','pub','restaurante','bar',);">Hotel</option>
  29.  
  30.          <option onclick="showOptions('bar','hotel','pub','restaurante');">Bar</option>
  31.  
  32.          <option onclick="showOptions('pub','restaurante','hotel','bar');">Pub</option>
  33.  
  34.             </select>
  35.  
  36.             <div id="hotel" style="display:none;">
  37.          
  38.     <INPUT type="hidden" NAME="tipo" value="hotel">
  39.     <INPUT TYPE="CHECKBOX" NAME="B&B" value="B&B">Bed&Breakfast<BR>
  40.     <INPUT TYPE="CHECKBOX" NAME="Parking" value="Parking">Parking privado<BR>
  41.     <INPUT TYPE="CHECKBOX" NAME="Wifi" value="Wifi">Wifi<BR>
  42.     <INPUT TYPE="CHECKBOX" NAME="Piscina" value="Piscina">Piscina<BR>
  43.     <INPUT TYPE="CHECKBOX" NAME="Animacion" value="Animacion">Servicio de Animacion<BR>
  44.  
  45.            </div>
  46.  
  47.            <div id="restaurante" style="display:none;">
  48.  
  49.     <INPUT TYPE="hidden" NAME="tipo" value="restaurante">
  50.     <INPUT TYPE="CHECKBOX" NAME="ServicioDomicilio" value="ServicioDomicilio">Servicio a domicilio<BR>
  51.     <INPUT TYPE="CHECKBOX" NAME="PPV" value="PPV">PPV<BR>
  52.     <INPUT TYPE="CHECKBOX" NAME="Parkingprivado" value="Parkingprivado">Parking privado<BR>
  53.         <INPUT TYPE="CHECKBOX" NAME="Menuinfantil" value="Menuinfantil">Menu infantil<BR>
  54.     <INPUT TYPE="CHECKBOX" NAME="Menuvegetariano" value="Menuvegetariano">Menu vegetariano<BR>
  55.     <INPUT TYPE="CHECKBOX" NAME="Bodas" value="Bodas">Salon especial para bodas<BR>
  56.  
  57.            </div>
  58.  
  59.     <div id="bar" style="display:none;">
  60.  
  61.     <INPUT TYPE="hidden" NAME="tipo" value="bar">
  62.     <INPUT TYPE="CHECKBOX" NAME="ServicioDomicilio" value="ServicioDomicilio">Servicio a domicilio<BR>
  63.     <INPUT TYPE="CHECKBOX" NAME="PPV" value="PPV">PPV<BR>
  64.     <INPUT TYPE="CHECKBOX" NAME="Parkingprivado" value="Parkingprivado">Parking privado<BR>
  65.         <INPUT TYPE="CHECKBOX" NAME="Menudia" value="Menudia">Menu del dia<BR>
  66.     <INPUT TYPE="CHECKBOX" NAME="Sidreria" value="Sidreria">Sidreria<BR>
  67.     <INPUT TYPE="CHECKBOX" NAME="TakeAway" value="TakeAway">Menus para llevar<BR>
  68.  
  69.            </div>
  70.  
  71.  
  72.     <div id="pub" style="display:none;">
  73.  
  74.     <INPUT TYPE="hidden" NAME="tipo" value="pub">
  75.     <INPUT TYPE="CHECKBOX" NAME="billar" value="billar">Billar<BR>
  76.     <INPUT TYPE="CHECKBOX" NAME="Pistabaile" value="Pistabaile">Pista de baile<BR>
  77.     <INPUT TYPE="CHECKBOX" NAME="cocteles" value="cocteles">Carta de cocteles<BR>
  78.         <INPUT TYPE="CHECKBOX" NAME="chupitos" value="chupitos">Carta de chupitos<BR>
  79.     <INPUT TYPE="CHECKBOX" NAME="karaoke" value="karaoke">karaoke<BR>
  80.  
  81.            </div>
  82.  
  83.    
  84.  
  85.     </fieldset>

Espero que se entienda.

Saludos amigo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.