Foros del Web » Programando para Internet » Javascript » Frameworks JS »

como hago un Select dependiente de BD

Estas en el tema de como hago un Select dependiente de BD en el foro de Frameworks JS en Foros del Web. HOla amigos llevo dias tratando de hacer un select dinamico de mi base de dato, para las tablas, regimenes y entidades_afiliadoras. tengo dos select uno ...
  #1 (permalink)  
Antiguo 02/05/2011, 16:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 1 mes
Puntos: 0
como hago un Select dependiente de BD

HOla amigos llevo dias tratando de hacer un select dinamico de mi base de dato, para las tablas, regimenes y entidades_afiliadoras.

tengo dos select uno llamado regimen y otro afiliadoras. el primero select no es problema, encontre el codigo y lo modifique y funciono.

Código:
<?php
include ("conexion.php");

$sql = "SELECT id_regimen, regimen FROM regimenes ORDER BY regimen";
$res = mysql_query($sql);
//obtenemos el número de registros
$num = mysql_num_rows($res);
?>

<div id=dependiente>

<!--Combo principal-->
<select name="regimen" onChange="redirect(this.options.selectedIndex)" style='width:160'>
<option selected value=0>Regimen</option>
<?
for($i=0;$i<$num;$i++) {
$id_regimen[$i] = mysql_result($res,$i,0);
$regimen[$i] = mysql_result($res,$i,1);
echo "<option value='$id_regimen[$i]'>$regimen[$i]</option>";
}
?>
</select>

<!--Combo dinámico-->
<select name="afiliadora" style='width:200px'>
<option selected value=0>Afiliadoras</option>
</select>

</div>
AHora necesito cargar el Select dimanico, q al pulsar un regimen pueda obtener las institucionas q estan es ese regimen.

las tablas estan relacionas, con el campo id_regimen. para la tabla regimenes es primaria, y para la tabla entidades_afiliadoras es foranea. muchas gracias.
  #2 (permalink)  
Antiguo 02/05/2011, 16:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: como hago un Select dependiente de BD

necesitas AJAX para eso.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 02/05/2011, 16:57
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Respuesta: como hago un Select dependiente de BD

Te recomendaría que leas sobre Jquery (framework de Javascript). Desde allí se pueden crear consultas AJAX rápidamente.

De esta forma, llamas a un archivo php, y cuando este termine de ejecutarse imprimes el resultado en pantalla, y así no tendrás que actualizar cada vez que deseas Insertar, Obtener, Eliminar (entre otros) un registro.

Primero lee sobre Jquery en sí, y luego para hacer lo que quieres hacer en especial busca sobre las funciones:

- $.ajax()
- $.post()
- $.get()

Saludos, espero que te sirva.
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #4 (permalink)  
Antiguo 02/05/2011, 17:24
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: como hago un Select dependiente de BD

Holas,

Capaz te sirva esto, lo modifique un poquito:

Código PHP:
Ver original
  1. <?php
  2. include ("conexion.php");
  3. ?>
  4. <form id="form1" name="form1" method="post">
  5. <div id=dependiente>
  6.  
  7. <!--Combo principal-->
  8. <select name="regimen" onChange="redirect(this.options.selectedIndex)" style='width:160'>
  9. <option value=0>Regimen</option>
  10. <?
  11. $res = mysql_query("SELECT id_regimen, regimen FROM regimenes ORDER BY regimen");
  12. while($rw = mysql_fetch_array($res))
  13.     echo "<option value='".$rw['id_regimen']."' ";
  14.     if(isset($_POST['regimen']) && !empty($_POST['regimen']) && ($_POST['regimen']== $rw['id_regimen']) )
  15.         echo 'selected';
  16.     echo ">";
  17.     echo    $rw['regimen'];
  18.     echo "</option>";
  19. ?>
  20. </select>
  21.  
  22. <!--Combo dinámico-->
  23. <select name="afiliadora" style='width:200px'>
  24. <option value=0>Afiliadoras</option>
  25. <?
  26. if(isset($_POST['id_regimen']) && !empty($_POST['id_regimen']))
  27. {   $res = mysql_query("SELECT id_afiliadora, id_regimen, afiliadora FROM afiliadoras WHERE id_regimen='".$_POST['id_regimen']."' ORDER BY afiliadora");
  28.     while($rw = mysql_fetch_array($res))
  29.         echo "<option value='".$rw['id_afiliadora']."' >";     
  30.         echo    $rw['afiliadora'];
  31.         echo "</option>";
  32. }
  33.  
  34. ?>
  35. </select>
  36. </div>
  37. </form>


Saludos
Gildus
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 03/05/2011, 11:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: como hago un Select dependiente de BD

Muchas gracias amigo, SI se q debo aprender ajax o Jquery, pero esto lo necesito urgente, luego voy depurando el codigo y colocandole mas tecnologia. pero Por ahora esto me sirve gracias.
  #6 (permalink)  
Antiguo 03/05/2011, 11:26
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: como hago un Select dependiente de BD

http://www.formatoweb.com.ar/ajax/se...pendientes.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 10/05/2011, 15:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 1 mes
Puntos: 0
Como construcir un select dependiente SENCILLO.

HOla amigos llevo ya mucho tiempo tratando de hacer uns select dependiente...y AUn no he podido, quiero haber si me hechan una mano para construirlo de la forma mas sencilla posible, he visto muchos tutos y demas pero son demasiado complejos para entenderlos y modificarlos, aun soy novato y apenas estoy empezando.

SOLO necesito un select entidades afiliadoras y otro select regimenes.

No quiero q utilize form ni get porq daña mi formulario y ya el formulario tiene un post hacia otro archivo php. entonces eso causaria problemas.

entidades afiliadoras tiene
id_entidades
id_regimen
Nom_entidad

regimenes
id_regimen
regimen


Eso es todo que cuando Pinche un entidad afiliadora me diga cual regimen tiene. y listo.
  #8 (permalink)  
Antiguo 10/05/2011, 15:50
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Como construcir un select dependiente SENCILLO.

Entonces sólo te quedan dos opciones:
O usas ajax, o usas javascript con todas las opciones precargadas. En ambos casos hay muchos ejemplos en la red, pero tendrás que entenderlos de todas formas.
  #9 (permalink)  
Antiguo 10/05/2011, 16:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Como construcir un select dependiente SENCILLO.

hola tengo este pero no me trae nada no funciona no hace nada... ya esta conectado a su base de datos, no la coloco porq ya es sabiado q se necesita incluir de todas formas include("conexion.php"); listo

Código:
 <div id=dependiente>
     
    <!--Combo principal-->
    <select name="regimen" onChange="redirect(this.options.selectedIndex)" style='width:160'>
    <option value=0>Regimen</option>
    <?
    $res = mysql_query("SELECT id_regimen, regimen FROM regimenes ORDER BY regimen");
    while($rw = mysql_fetch_array($res))
        echo "<option value='".$rw['id_regimen']."' ";
        if(isset($_POST['regimen']) && !empty($_POST['regimen']) && ($_POST['regimen']== $rw['id_regimen']) )
            echo 'selected';
        echo ">";
        echo    $rw['regimen'];
        echo "</option>";
    ?>
    </select>
     
    <!--Combo dinámico-->
    <select name="afiliadora" style='width:200px'>
    <option value=0>Afiliadoras</option>
    <?
    if(isset($_POST['id_regimen']) && !empty($_POST['id_regimen']))
    {   $res = mysql_query("SELECT id_afiliadora, id_regimen, nom_afiliadora 
	FROM entidades_afiliadoras WHERE id_regimen='".$_POST['id_regimen']."' 
	  ORDER BY nom_afiliadora");
        while($rw = mysql_fetch_array($res))
            echo "<option value='".$rw['id_afiliadora']."' >";     
            echo    $rw['nom_afiliadora'];
            echo "</option>";
    }
     
    ?>
    </select>
    </div>
  #10 (permalink)  
Antiguo 10/05/2011, 16:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: como hago un Select dependiente de BD

hola amigo lo probe y no me funciono, no hace nada, he estado viendo pero nada q hace algo, por cierto la dependencia es al reves, es de afiliadoras a regimenes, yo doy en una afiliadora y me tiene q mostrar el regimen, jeje es q me equivoque.


Cita:
Iniciado por gildus Ver Mensaje
Holas,

Capaz te sirva esto, lo modifique un poquito:

Código PHP:
Ver original
  1. <?php
  2. include ("conexion.php");
  3. ?>
  4. <form id="form1" name="form1" method="post">
  5. <div id=dependiente>
  6.  
  7. <!--Combo principal-->
  8. <select name="regimen" onChange="redirect(this.options.selectedIndex)" style='width:160'>
  9. <option value=0>Regimen</option>
  10. <?
  11. $res = mysql_query("SELECT id_regimen, regimen FROM regimenes ORDER BY regimen");
  12. while($rw = mysql_fetch_array($res))
  13.     echo "<option value='".$rw['id_regimen']."' ";
  14.     if(isset($_POST['regimen']) && !empty($_POST['regimen']) && ($_POST['regimen']== $rw['id_regimen']) )
  15.         echo 'selected';
  16.     echo ">";
  17.     echo    $rw['regimen'];
  18.     echo "</option>";
  19. ?>
  20. </select>
  21.  
  22. <!--Combo dinámico-->
  23. <select name="afiliadora" style='width:200px'>
  24. <option value=0>Afiliadoras</option>
  25. <?
  26. if(isset($_POST['id_regimen']) && !empty($_POST['id_regimen']))
  27. {   $res = mysql_query("SELECT id_afiliadora, id_regimen, afiliadora FROM afiliadoras WHERE id_regimen='".$_POST['id_regimen']."' ORDER BY afiliadora");
  28.     while($rw = mysql_fetch_array($res))
  29.         echo "<option value='".$rw['id_afiliadora']."' >";     
  30.         echo    $rw['afiliadora'];
  31.         echo "</option>";
  32. }
  33.  
  34. ?>
  35. </select>
  36. </div>
  37. </form>


Saludos
Gildus
  #11 (permalink)  
Antiguo 11/05/2011, 08:52
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: como hago un Select dependiente de BD

Bueno pues te dejo aqui la liga del framework de ajax que uso y la forma en que se implementaria lo que quieres , solo es cosa de dar bien las rutas hacia la libreria

http://www.xajax-project.org/en/home/


Código PHP:
Ver original
  1. <?
  2. require_once("xajax_core/xajax.inc.php");#en donde se encuentra tu xajax
  3.  
  4. $xajax = new xajax();
  5. $xajax->registerFunction("myFunction");
  6. function myFunction($afiliadora){
  7.     $newContent='';
  8.     $newContent.='<select name="regimen" style="width:160">';
  9.     $newContent.='<option value=0>Regimen</option>';
  10.  
  11.     $res = mysql_query("SELECT id_regimen, regimen FROM regimenes where id_afiliadora=$afiliadora ORDER BY regimen");
  12.     while($rw = mysql_fetch_array($res)){
  13.         $newContent.= '<option value="'.$rw['id_regimen'].'">';
  14.         $newContent.=    $rw['regimen'];
  15.         $newContent.= "</option>";
  16.     }
  17.     $newContent.='</select>';
  18.     $objResponse = new xajaxResponse();
  19.     $objResponse->assign("regimen","innerHTML", $newContent);
  20. }
  21. $xajax->processRequest();
  22. ?>
  23.  
  24. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  25. <html xmlns="http://www.w3.org/1999/xhtml">
  26. <head>
  27. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  28. <title>Documento sin t&iacute;tulo</title>
  29. <?php $xajax->printJavascript(); #aqui como parametro debes poner la ruta de la carpeta de xajax?>
  30.  
  31. </head>
  32.  
  33. <body>
  34. <form id="form1" name="form1" method="post">
  35. <div id=dependiente>
  36.  
  37. <!--Combo principal-->
  38. <select name="afiliadora" onchange="xajax_myFunction(this.options[this.selectedIndex].value);" style='width:200px'>
  39. <option value=0>Afiliadoras</option>
  40. <?
  41.  
  42.    $res = mysql_query("SELECT id_afiliadora, afiliadora FROM afiliadoras ORDER BY afiliadora");
  43.     while($rw = mysql_fetch_array($res)){
  44.         echo "<option value='".$rw['id_afiliadora']."' >";      
  45.         echo    $rw['afiliadora'];
  46.         echo "</option>";
  47.     }
  48.  
  49. ?>
  50. </select>
  51.  
  52. <div id="regimen">
  53.     <select name="regimen" style='width:200px'>
  54.     <option value=0>Regimen</option>
  55.     </select>
  56. </div>
  57. </form>
  58. </body>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 11/05/2011, 10:42
Avatar de Ximenitaa  
Fecha de Ingreso: abril-2011
Ubicación: Mexico
Mensajes: 208
Antigüedad: 13 años
Puntos: 43
Respuesta: como hago un Select dependiente de BD

Hola !!!!

http://www.formatoweb.com.ar/ajax/se...pendientes.php

Este manual te ayuda en eso, tiene un ejemplo que lo puedes modificar........... te explica desde dos y tres niveles.....espero te ayude de algo

Saludos!!! -n.n-
__________________
❤(。◕‿◕)❤ . . . Ten un dia .... GeNiAl.... !!!! . . . ❤(◕‿◕。)❤

¿Que dia es hoy? . . . Hoy, hoy, es definitivamente un dia PERFECTO !!
  #13 (permalink)  
Antiguo 11/05/2011, 11:13
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: como hago un Select dependiente de BD

Cita:
HOla amigo mira yo he hecho este pero no me funciona de esta manera es q lo necesito. veras no solo es q los listes dependiente mente en el combobox, sino tambien q cuando intente guardarlo insert en una nueva tabla llamada REMISIONES q contiene los campos de nom_afiliadora y regimen, no me guarde el ID sino los valores realies como por ejemplo, nom_afiliadora CONSALTRA, SRAGON, BREMA etc....REGIMENES CONTRIBUTIVO, SOAP etc....Y no q me guarde los id q es lo q me esta pasando.......ESTE Q LES MUESTRO AQUI NO ME funciona no hace nada. pero tiene la logica de lo q quiero.


Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.         <title>Selects dependientes con jQuery.</title>
  6.         <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
  7.         <script language="JavaScript" type="text/JavaScript">
  8.             $(document).ready(function(){
  9.                 $("#select1").change(function(event){
  10.                     var id = $("#select1").find(':selected').val();
  11.                     $("#select2").load('genera-select.php?id='+id);
  12.                 });
  13.             });
  14.         </script>
  15.     </head>
  16.  
  17.     <body>
  18.         <form>
  19.        
  20.         <?php
  21.         include("../../PHP/getconfi_conect.php");
  22.  
  23.  $sql = ("SELECT regimen, id_regimen FROM regimenes order by regimen");
  24.    $resultado=mysql_query($sql);
  25.   if ($row = mysql_fetch_array($resultado)){
  26.       ?>    <div class="tipo" align="left">  <select name="select1" id="select1">
  27.       <option value="">[Seleccione]</option>
  28.       <?php
  29. do {
  30.        echo '<option value= "'.$row["regimen"].'">'.$row["regimen"].'</option>';
  31. } while ($row = mysql_fetch_array($resultado));
  32. ?>
  33.     </select>      <?php } ?>  </div>
  34.            
  35.                <br />
  36.                
  37.             <select name="select2" id="select2">
  38.  
  39.             </select>
  40.         </form>
  41.     </body>
  42. </html>
  43.  
  44.  
  45. otro archivo php llamado genera-select.php
  46.  
  47. <?php
  48. include("../../PHP/getconfi_conect.php");
  49.  
  50. $consulta = "SELECT nom_afiliadora, n_regimen from  entidades_afiliadoras
  51.             WHERE n_regimen = ".$_GET['id'];
  52. $query = mysql_query($consulta);
  53. while ($fila = mysql_fetch_array($query)) {
  54.     echo '<option value="'.$fila['nom_afiliadora'].'">'.$fila['nom_afiliadora'].'</option>';
  55. };
  56.  
  57. ?>
  #14 (permalink)  
Antiguo 11/05/2011, 11:38
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: como hago un Select dependiente de BD


por eso amigo

paso 1 armar tu formulario
paso 2 guardar lo que en el formulario mandas


teniendo la llave primaria de un registro obtienes los demas datos , no necesitas mandar todo el daterio
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #15 (permalink)  
Antiguo 11/05/2011, 11:57
 
Fecha de Ingreso: julio-2010
Mensajes: 7
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: como hago un Select dependiente de BD

si usa xajax ..lo he usado y es sencillo.

Etiquetas: bd, dependiente, php, select, sencillo
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 07:11.