Foros del Web » Creando para Internet » HTML »

Problema con formulario (form SELECT)

Estas en el tema de Problema con formulario (form SELECT) en el foro de HTML en Foros del Web. Hola, estoy haciendo una aplicación en php para ir aprendiendo y me surgio un problema con un formulario. El tema es asi: En el formulario ...
  #1 (permalink)  
Antiguo 21/07/2011, 15:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Problema con formulario (form SELECT)

Hola, estoy haciendo una aplicación en php para ir aprendiendo y me surgio un problema con un formulario. El tema es asi:

En el formulario hay un campo select en el que vos seleccionas la provincia, una vez seleccionada se te tiene que habilitar otro select con las ciudades de esa provincia y una vez seleccionada la ciudad se te habilita otro select con los barrios.

El de la provincia es fácil, recupero todas las provincias y las muestro en un campo select.

Lo que no se hacer es que al seleccionar la provincia se te habilite otro campo select con las ciudades que tengan el mismo id_provincia que se selecciono... Lo mismo para los barrios a partir de la ciudad...

Alguien me podría orientar mas o menos de que manera se tendría que hacer???
Saludos!
  #2 (permalink)  
Antiguo 21/07/2011, 17:44
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema con formulario (form SELECT)

eso se hace con AJAX, investigue al respecto
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 21/07/2011 a las 17:52
  #3 (permalink)  
Antiguo 22/07/2011, 14:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario (form SELECT)

Si me imagine eso, pero no hay una manera de hacerlo solo con PHP??
Es que la aplicación es para un final de la facultad y solo toman php... Mas adelante si tengo pensado en ponerme a aprender ajax... No hay cosa me que gusta mas que las aplicaciones webs con ajax por todos lados! jaja ;)
Un saludo
  #4 (permalink)  
Antiguo 22/07/2011, 16:26
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema con formulario (form SELECT)

claro que lo puedes hacer solo con PHP, a tales efectos tendrás que pasar (o por GET o por POST) pero recargando la página, y como tal tendrías que enviar TODO el form para no perder los otros datos de input previamente llenados por el usuario.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 22/07/2011, 16:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario (form SELECT)

Ahh claroo, lo que estaba buscando y no puedo encontrar es como es para que al seleccionar en el select la provincia, se envie el formulario solo sin tener que hacer click en el boton submit...
Gracias por tus respuestas maycolalvarez
Saludos
  #6 (permalink)  
Antiguo 22/07/2011, 16:51
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Problema con formulario (form SELECT)

Con PHP puro no se puede, necesitas Javascript, específicamente tienes que virar el evento onChange.

Saludos
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 24/07/2011, 11:43
 
Fecha de Ingreso: septiembre-2008
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario (form SELECT)

Hola, gracias por sus respuestas, ya solucione el problema del select con el onchange tal como me dijieron. Pero ahora surgio otro problema...
Si al formulario le quiero agregar un boton submit para que al terminar de llenar TODO el formulario, el usuario pueda enviarlo, me dejan de andar los selects con el onchange activado....
La pregunta es, puede haber selects con el onchange activado y a la vez un boton submit en el mismo formulario???
Les paso el codigo del formulario tal como esta ahora...
Desde ya gracias por tomarse el tiempo en responder.
Un saludo

Código PHP:
Ver original
  1. <form action="" method="post" name="FormAltaProp">
  2.         <table>
  3.         <tr>
  4.         <td>** Direccion:</td>
  5.         <td><input type="TEXT" name="direccion" value="<?php echo $_POST['direccion']; ?>" size="20" maxlength="40"></td>
  6.         </tr>
  7.         <tr>
  8.         <td>** Descripcion:</td>
  9.         <td><TEXTAREA NAME="descripcion" COLS=40 ROWS=6><?php echo $_POST['descripcion']; ?></TEXTAREA></td>
  10.         </tr>
  11.         <tr>
  12.         <td>** Tipo de Operacion:</td>
  13.         <td><select name="tipo_operacion" size="1">
  14.             <?php if($_POST['tipo_operacion']=="v") {
  15.             echo '<option selected="selected" value="v">Venta</option>';
  16.             echo '<option value="a">Alquiler</option>';
  17.             } else{
  18.             echo '<option selected="selected" value="a">Alquiler</option>';
  19.             echo '<option value="v">Venta</option>';
  20.             }
  21.             ?>
  22.             </select></td>
  23.         </tr>
  24.         <tr>
  25.         <td>Precio:</td>
  26.         <td><input type="TEXT" name="precio" value="<?php echo $_POST['precio']; ?>" size="20" maxlength="40"></td>
  27.         </tr>
  28.         <tr>
  29.         <td>Provincia:</td>
  30.         <td><select name="provincia" size="1" onchange="this.form.submit()">
  31.         <option value="nada">----</option>
  32.         <?php
  33.         include("conexion.inc");
  34.         $vSql= "SELECT id_provincia, desc_provincia FROM provincia";
  35.         $vResultado= mysql_query($vSql, $link) or die(mysql_error());
  36.         while($reg= mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  37.             if ($_POST['provincia']==$reg['id_provincia']){
  38.                 echo '<option selected="selected" value="'.$reg['id_provincia'].'">'.$reg['desc_provincia'].'</option>';
  39.             } else {
  40.             echo '<option value="'.$reg['id_provincia'].'">'.$reg['desc_provincia'].'</option>';
  41.             }
  42.         }
  43.         ?>
  44.         </select></td>
  45.         </tr>
  46.         <tr>
  47.         <td>Ciudad:</td>
  48.         <td><select name="localidad" size="1" onchange="this.form.submit()">
  49.         <option value="nada">----</option>
  50.         <?php
  51.         $vSql= "SELECT id_localidad, desc_localidad FROM localidad WHERE id_provincia='".$_POST['provincia']."'";
  52.         $vResultado= mysql_query($vSql, $link) or die(mysql_error());
  53.         while($reg= mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  54.             if($_POST['localidad']==$reg['id_localidad'])
  55.             echo '<option selected="selected" value="'.$reg['id_localidad'].'">'.$reg['desc_localidad'].'</option>';
  56.             else
  57.             echo '<option value="'.$reg['id_localidad'].'">'.$reg['desc_localidad'].'</option>';
  58.            
  59.         }
  60.         ?>
  61.         </select></td>
  62.         </tr>
  63.         <tr>
  64.         <td>Barrio:</td>
  65.         <td><select name="barrio" size="1">
  66.         <?php
  67.         $vSql= "SELECT id_barrio, desc_barrio FROM barrio WHERE id_localidad='".$_POST['localidad']."'";
  68.         $vResultado= mysql_query($vSql, $link) or die(mysql_error());
  69.         while($reg= mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  70.             echo '<option value="'.$reg['id_barrio'].'">'.$reg['desc_barrio'].'</option>';
  71.            
  72.         }
  73.         ?>
  74.         </select></td>
  75.         </tr>
  76.         </table>
  77.         </form>

Última edición por brunocanalla; 24/07/2011 a las 16:02
  #8 (permalink)  
Antiguo 24/07/2011, 16:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema con formulario (form SELECT)

tal como te dije: cuando desde el onchange envías el formulario, se envía todo y como tal deberás reasignar los valores de todos los input desde el servidor (en este caso con PHP).
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 25/07/2011, 08:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario (form SELECT)

Gracias por sus ayudas, ya me anduvo... Les dejo el codigo de como quedo la creación de la propiedad en la base de datos, con el insert, formulario y todo...
Capaz que a alguien le sirve, y si alguien ve el código y cree que se podría hacer mejor si puede que lo escriba así voy mejorando :)
Saludos!

Código PHP:
Ver original
  1. if(isset($_POST['direccion']) && isset($_POST['descripcion']) && isset($_POST['tipo_operacion']) && isset($_POST['barrio']) && isset($_POST['tipo_prop'])) {
  2.    
  3.     $vDireccion= $_POST['direccion'];
  4.     $vDescripcion= $_POST['descripcion'];
  5.     $vTipoOperacion= $_POST['tipo_operacion'];
  6.     $vPrecio= $_POST['precio'];
  7.     $vBarrio= $_POST['barrio'];
  8.     $vTipoPropiedad= $_POST['tipo_prop'];
  9.    
  10.     include('conexion.inc');
  11.    
  12.     $vSql= "INSERT INTO propiedad (direccion,desc_prop,tipo_operacion,precio,id_barrio,id_tipo) values ('$vDireccion','$vDescripcion', '$vTipoOperacion', '$vPrecio', '$vBarrio', '$vTipoPropiedad')";
  13.     mysql_query($vSql, $link) or die(mysql_error());
  14.     // Cerrar la conexion
  15.     mysql_close($link);
  16.     echo '<div class="bloqueConfirmacion"><strong>Propiedad creada exitosamente!</strong></div>';
  17.     mostrar_propiedades_admin($_POST['tipo_operacion']);
  18.        
  19.     } else{
  20.         ?>
  21.         <form action="" method="post" name="FormAltaProp">
  22.         <table>
  23.         <tr>
  24.         <td>** Direccion:</td>
  25.         <td><input type="TEXT" name="direccion" value="<?php echo $_POST['direccion']; ?>" size="20" maxlength="40"></td>
  26.         </tr>
  27.         <tr>
  28.         <td>** Descripcion:</td>
  29.         <td><TEXTAREA NAME="descripcion" COLS=40 ROWS=6><?php echo $_POST['descripcion']; ?></TEXTAREA></td>
  30.         </tr>
  31.         <tr>
  32.         <td>** Tipo de Operacion:</td>
  33.         <td><select name="tipo_operacion" size="1">
  34.             <?php if($_POST['tipo_operacion']=="v") {
  35.             echo '<option selected="selected" value="v">Venta</option>';
  36.             echo '<option value="a">Alquiler</option>';
  37.             } else{
  38.             echo '<option selected="selected" value="a">Alquiler</option>';
  39.             echo '<option value="v">Venta</option>';
  40.             }
  41.             ?>
  42.             </select></td>
  43.         </tr>
  44.         <tr>
  45.         <td>Precio:</td>
  46.         <td><input type="TEXT" name="precio" value="<?php echo $_POST['precio']; ?>" size="20" maxlength="40"></td>
  47.         </tr>
  48.         <tr>
  49.         <td>Provincia:</td>
  50.         <td><select name="provincia" size="1" onchange="this.form.submit()">
  51.         <option value="nada">----</option>
  52.         <?php
  53.         include("conexion.inc");
  54.         $vSql= "SELECT id_provincia, desc_provincia FROM provincia";
  55.         $vResultado= mysql_query($vSql, $link) or die(mysql_error());
  56.         while($reg= mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  57.             if ($_POST['provincia']==$reg['id_provincia']){
  58.                 echo '<option selected="selected" value="'.$reg['id_provincia'].'">'.$reg['desc_provincia'].'</option>';
  59.             } else {
  60.             echo '<option value="'.$reg['id_provincia'].'">'.$reg['desc_provincia'].'</option>';
  61.             }
  62.         }
  63.         ?>
  64.         </select></td>
  65.         </tr>
  66.         <tr>
  67.         <td>Ciudad:</td>
  68.         <td><select name="localidad" size="1" onchange="this.form.submit()">
  69.         <option value="nada">----</option>
  70.         <?php
  71.         $vSql= "SELECT id_localidad, desc_localidad FROM localidad WHERE id_provincia='".$_POST['provincia']."'";
  72.         $vResultado= mysql_query($vSql, $link) or die(mysql_error());
  73.         while($reg= mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  74.             if($_POST['localidad']==$reg['id_localidad'])
  75.             echo '<option selected="selected" value="'.$reg['id_localidad'].'">'.$reg['desc_localidad'].'</option>';
  76.             else
  77.             echo '<option value="'.$reg['id_localidad'].'">'.$reg['desc_localidad'].'</option>';
  78.            
  79.         }
  80.         ?>
  81.         </select></td>
  82.         </tr>
  83.         <tr>
  84.         <td>Barrio:</td>
  85.         <td><select name="barrio" size="1">
  86.         <?php
  87.         $vSql= "SELECT id_barrio, desc_barrio FROM barrio WHERE id_localidad='".$_POST['localidad']."'";
  88.         $vResultado= mysql_query($vSql, $link) or die(mysql_error());
  89.         while($reg= mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  90.             echo '<option value="'.$reg['id_barrio'].'">'.$reg['desc_barrio'].'</option>';
  91.            
  92.         }
  93.         ?>
  94.         </select></td>
  95.         </tr>
  96.         <tr>
  97.         <td>Tipo de Propiedad:</td>
  98.         <td><select name="tipo_prop" size="1">
  99.         <?php
  100.         $vSql= "SELECT id_tipo, desc_tipo FROM tipo_propiedad";
  101.         $vResultado= mysql_query($vSql,$link) or die(mysql_error());
  102.         while($reg=mysql_fetch_array($vResultado, MYSQL_ASSOC)) {
  103.             if($_POST['tipo_prop']==$reg['id_tipo'])
  104.                 echo '<option selected="selected" value="'.$reg['id_tipo'].'">'.$reg['desc_tipo'].'</option>';
  105.              else
  106.                 echo '<option value="'.$reg['id_tipo'].'">'.$reg['desc_tipo'].'</option>';
  107.            
  108.         }
  109.  
  110.         // Cerrar la conexion
  111.         mysql_close($link);
  112.         ?>
  113.         </select></td>
  114.         </tr>
  115.         <tr><td><input type="submit" name="nuevaProp" value="Nueva Propiedad" /></td>
  116.         <td></td>
  117.         </tr>
  118.         </table>
  119.         </form>
  120.        
  121.        
  122.     <?php  
  123.     }

Última edición por brunocanalla; 25/07/2011 a las 09:19

Etiquetas: php
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 20:22.