Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] Como llenar campos dependientes de un select

Estas en el tema de Como llenar campos dependientes de un select en el foro de HTML en Foros del Web. Hola a todos. Tengo una problema, necesito hacer lo siguiente. Tengo un formulario con dos selects dependientes, y necesito que al elegir una opcion del ...
  #1 (permalink)  
Antiguo 29/09/2015, 19:35
 
Fecha de Ingreso: marzo-2015
Mensajes: 16
Antigüedad: 9 años, 1 mes
Puntos: 1
Pregunta Como llenar campos dependientes de un select

Hola a todos.

Tengo una problema, necesito hacer lo siguiente.

Tengo un formulario con dos selects dependientes, y necesito que al elegir una opcion del segundo select, se carguen los datos correspondientes a esa opcion desde mi bd, (en si es un formulario para editar un registro).

He leido un poco y estoy usando ajax, pero me he perdido en algunas cosas, alguien me podria dar una idea de como solucionar mi problema.. Aqui el codigo de lo que llevo, para dar una idea.

Código HTML:
 <div id="contenedor">
            <form method="post" name="form1" action="<?php echo $editFormAction; ?>">
              <table align="center">
                <tr valign="baseline">
                  <td nowrap align="right">Volumen al que pertenece:</td>
                  <td>
                    <select name="volumen_idvolumen" onchange="Cargard(this.value)">
                          <option value="">Volumen</option>
                      <?php
                        do {  
                        ?>
                                <option value="<?php echo $fila_volumenes['idVolumen']?>"><?php echo $fila_volumenes['idVolumen']?></option>
                                <?php
                        } while ($fila_volumenes = mysql_fetch_assoc($volumenes));
                          $rows = mysql_num_rows($volumenes);
                          if($rows > 0) {
                              mysql_data_seek($volumenes, 0);
                                  $fila_volumenes = mysql_fetch_assoc($volumenes);
                          }
                        ?>
                  </select>
                  </td>
                </tr>
                <tr valign="baseline">
                  <td nowrap align="right">Seleccione el articulo:</td>
                  <td>                     
                     <select name="articulo_idarticulo" id="articulo_idarticulo" onchange="Cargarc(this.value)">
                          <option value="">Articulo</option>                         
                     </select>
                  </td>
                </tr>
                <tr valign='baseline'>
                  <td nowrap align='right'>Cambiar Titulo:</td>
                  <td><input type='text' name='ctitulo' value='"Aqui el titulo"' size='32'></td>
                </tr>
                <tr valign='baseline'>
                  <td nowrap align='right'>Cambiar Autor:</td>
                  <td><input type='text' name='cautor' value='"Aqui el autor"' size='32'></td>
                </tr>
                <tr valign='baseline'>
                  <td nowrap align='right'>Editar Resumen:</td>
                  <td><textarea name='eresumen' cols='105' rows='5' value=''>"Aqui el resumen"</textarea></td>
                </tr>
                <tr valign='baseline'>
                  <td nowrap align='right'>Editar Contenido:</td>
                  <td><textarea name='ercontenido' cols='105' rows='18' value=''>"Aqui el contenido a editar"
                      </textarea>
                  </td>
                </tr>
                <tr valign="baseline">
                  <td nowrap align="right">&nbsp;</td>
                  <td><input type="submit" value="Guardar Cambios"></td>
                </tr>
              </table>
              <input type="hidden" name="MM_insert" value="form1">
            </form> 
en el primer select tengo una funcion de JavaScript para cargar los datos del segundo select
y en el segundo select tengo otra funcion con la que deberian llenarse los campos de abajo, segun lo seleccionado.
  #2 (permalink)  
Antiguo 30/09/2015, 09:47
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Como llenar campos dependientes de un select

Y donde esta el problema?
  #3 (permalink)  
Antiguo 30/09/2015, 12:57
 
Fecha de Ingreso: marzo-2015
Mensajes: 16
Antigüedad: 9 años, 1 mes
Puntos: 1
Respuesta: Como llenar campos dependientes de un select

El problema esta en que no se como mostrar los datos correspondientes a la selección que se hizo en el segundo select, necesito mostrar esos datos abajo de ese mismo select, para que el usuario pueda modificar algo y luego guardar los cambios.
  #4 (permalink)  
Antiguo 30/09/2015, 13:17
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Como llenar campos dependientes de un select

Primer select > evento change > funcion
Aqui en el cuerpo de la funcion tienes que enviar la peticion ajax y los resultados debes agregarlos al otro select

Para hacer la peticion ajax debes crear el objeto xmlhttprequest, onreadystatechange, open y el metodo send() para enviar la peticion

onreadystatechange se encarga de ver si ya llego la respuesta del servidor (readyState = 4 y status = 200)
en el caso de que la respuesta llegue pues obtienes la respuesta con responseXML o responseText (lo mas facil sera responseText)

Para esto responseText debe contener algo como "<option>1</option><option>2</option>", acuerdate que responseText va a contener lo que el servidor le mande(osea lo que tu programes, aqui solo pon echo "<option>1</option><option>2</option>";)

seguimos en la parte de que ya llego la respuesta
Ok ya tenemos la respuesta en responseText ahora solo hay que hacer un innerHTML en el otro select para agregarle las nuevas opciones que acabamos de recibir del servidor

Esa es la historia de las peticiones :)

Etiquetas: campos, formulario, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:41.