Foros del Web » Programando para Internet » PHP »

Select Dinamicos Automaticos

Estas en el tema de Select Dinamicos Automaticos en el foro de PHP en Foros del Web. Hola a todos espero que esten bien. No sé si podtearlo aca o en el de javascript, ya que estoy usando los dos idiomas de ...
  #1 (permalink)  
Antiguo 09/08/2010, 11:47
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Pregunta Select Dinamicos Automaticos

Hola a todos espero que esten bien.

No sé si podtearlo aca o en el de javascript, ya que estoy usando los dos idiomas de programacion.

He creado unos select dinamicos y automaticos y quisiera saber si estan bien hachos, funcionan bien , pero como soy novato en javascript, quiero saber si pueden presentar algun error.

Dejo el codigo y la bade de datos, por favor si alguien lo puede probar se los agradeceré.

Código PHP:
<?php include("conexion.php"); 
$c=mysql_query("select * from f_region order by region",$conexion);
$c3=mysql_query("select * from f_region order by region",$conexion);
?>


<html>
<head>


<script language="JavaScript">
function doChange() {
    
      var gender = document.getElementById("Gender_Chooser");
      var opts = document.getElementById("Further_Options");
      opts.options.length = 0;
        <?php while ($rc3=mysql_fetch_array($c3)){?>
                           if(gender.value == "<?php echo $rc3['id']; ?>") {
                                <?php   
                                $c2
=mysql_query("select * from f_barrio where id_region='".$rc3['id']."' order by barrio",$conexion);
                                while (
$rc2=mysql_fetch_array($c2)){?>
                                        opts.options[opts.options.length] = new Option("<?php echo $rc2['barrio']; ?>", "<?php echo $rc2['id']; ?>");
                                <?php }?>
                          }
       <?php }?>
       
}
</script>
</head>
<body>

<p>Seleccione Region</p>

<form action="form_dinamico.php" method="get">
  
   <select name="Gender_Chooser" id="Gender_Chooser" onChange="doChange()">
      <option value="" selected="selected">Indistinto</option>
      <?php while ($rc=mysql_fetch_array($c)){?>
      <option value="<?php echo $rc['id']; ?>"><?php echo $rc['region']; ?></option>
      <?php }?>
   </select>
   
   
<p>Seleccione Barrio</p>

   <select name="Further_Options" id="Further_Options">
      <option value="" selected="selected">Indistinto</option>
   </select>
   
   
     <input type="submit" name="button" id="button" value="Enviar">
   
</form>
  
  
</body>
</html>
DASE DE DATOS

CREATE TABLE IF NOT EXISTS `f_barrio` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_region` int(11) NOT NULL,
`barrio` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

--
-- Volcar la base de datos para la tabla `f_barrio`
--

INSERT INTO `f_barrio` (`id`, `id_region`, `barrio`) VALUES
(1, 2, 'San Miguel'),
(2, 2, 'Bella Vista'),
(3, 2, 'Jose C. Paz'),
(4, 2, 'Muñiz'),
(5, 1, 'Pedernera'),
(6, 1, 'Pringles'),
(7, 3, 'General Alvear'),
(8, 3, 'Godoy Cruz'),
(9, 4, 'Colon'),
(10, 4, 'Concordia'),
(11, 4, 'Diamante');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `f_region`
--

CREATE TABLE IF NOT EXISTS `f_region` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`region` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Volcar la base de datos para la tabla `f_region`
--

INSERT INTO `f_region` (`id`, `region`) VALUES
(1, 'San Luis'),
(2, 'Buenos Aires'),
(3, 'Mendoza'),
(4, 'Entre Rios');
__________________
la la la
  #2 (permalink)  
Antiguo 09/08/2010, 12:38
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: Select Dinamicos Automaticos

si te funcionan es porque están bien echo, pero no son dinámicos, ni es la forma adecuada, ¿por que?: porque veo que cargas todo en javascript e implica cargar y devolver TODOS los registros de la 2da tabla (a la larga si esta tabla tiene muchos registros, implicaría no solo una sobrecarga del server, sino también al interprete javascript del cliente), la idea de hacerlo dinámico es que al seleccionar del primer select, el segundo sea cargado con los datos del servidor, en otras palabras AJAX

php se ejecuta en el servidor, es cierto, pero javascript se ejecuta en el cliente, y como usas php pensarás "¡¡¡ pero si la carga de los datos desde BD con php es dinámica !!!", sí lo es, no te lo niego, pero el echo es que cargas todo la primera vez, entonces en la función de javascript doChange lo tienes todo ya cargado, por lo que allí no hay petición al servidor (php/apache), no es dinámica ni interactiva; AJAX es una técnica que permite hacer eso, realizar solicitudes al php del servidor desde javascript, sin recargar la página, ni cargar todo previamente a javascript.

te recomiendo que busques un tutorial de PHP AJAX y veas la forma adecuada de hacer verdaderos selects dependientes de php con ajax

Última edición por maycolalvarez; 09/08/2010 a las 12:43
  #3 (permalink)  
Antiguo 09/08/2010, 13:01
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Select Dinamicos Automaticos

Cita:
Iniciado por maycolalvarez Ver Mensaje
si te funcionan es porque están bien echo, pero no son dinámicos, ni es la forma adecuada, ¿por que?: porque veo que cargas todo en javascript e implica cargar y devolver TODOS los registros de la 2da tabla (a la larga si esta tabla tiene muchos registros, implicaría no solo una sobrecarga del server, sino también al interprete javascript del cliente), la idea de hacerlo dinámico es que al seleccionar del primer select, el segundo sea cargado con los datos del servidor, en otras palabras AJAX

php se ejecuta en el servidor, es cierto, pero javascript se ejecuta en el cliente, y como usas php pensarás "¡¡¡ pero si la carga de los datos desde BD con php es dinámica !!!", sí lo es, no te lo niego, pero el echo es que cargas todo la primera vez, entonces en la función de javascript doChange lo tienes todo ya cargado, por lo que allí no hay petición al servidor (php/apache), no es dinámica ni interactiva; AJAX es una técnica que permite hacer eso, realizar solicitudes al php del servidor desde javascript, sin recargar la página, ni cargar todo previamente a javascript.

te recomiendo que busques un tutorial de PHP AJAX y veas la forma adecuada de hacer verdaderos selects dependientes de php con ajax
OK, te agradezco mucho, ya me parecía que estaba mal, yo pensaba que primero se cargaban los datos y despues se elegían los que uno necesitaba. Recien estoy empezando con javascript, asique lo de ajax lo tendré que ver mas adelante. Si sabes de algun tutorial de ajax , vienvenido sea amigo, que esté en español.
Te agradezco mucho el haberte tomado tu tiempo pa ver lo mal que lo hice.. jaja.
Bueno Saludos
__________________
la la la
  #4 (permalink)  
Antiguo 09/08/2010, 13:05
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Select Dinamicos Automaticos

bueno en google hay varios ejemplos pero este esta sencillito suerte select dependientes ajax
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 10/08/2010, 06:58
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Select Dinamicos Automaticos

Cita:
Iniciado por carlos_belisario Ver Mensaje
bueno en google hay varios ejemplos pero este esta sencillito suerte select dependientes ajax
excelente..!! muy bueno eso que me pasaste, yo busqué pero no había encontrado algo tan tan bueno como eso, todo preparado para que funcione, muy agradecido...

Saludos. Creo que lo podrian poner en las FAQ ya que es un muy buen ejemplo, pero hay que ver la licencia que tiene, ya que es libre pero tiene algunas peticiones de su creador. Muchas gracias
__________________
la la la

Etiquetas: dinamicos, select, automatico
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 13:23.