Foros del Web » Programando para Internet » PHP »

Ayuda con select dependiente de BD

Estas en el tema de Ayuda con select dependiente de BD en el foro de PHP en Foros del Web. Hola a todos mi consulta es la siguiente: Tengo 2 tablas en mi base de datos (provincias, localidades) y lo que quiero es asociar un ...
  #1 (permalink)  
Antiguo 28/06/2005, 11:22
Avatar de miguelon76  
Fecha de Ingreso: junio-2005
Ubicación: Malaga
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Exclamación Ayuda con select dependiente de BD

Hola a todos mi consulta es la siguiente:

Tengo 2 tablas en mi base de datos (provincias, localidades) y lo que quiero es asociar un campo select de un formulario a provincias y que segun el valor seleccionado cargue en otro select las localidades de dicha provincia, lo he intentado de varias formas pero como no se javascript me resulta muy dificil. Alguien querria exarme una ayudita o decirme de documentación para poder hacerlo.

Gracias de antemano.
  #2 (permalink)  
Antiguo 28/06/2005, 11:43
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 12 años, 5 meses
Puntos: 0
puedes realizarlo, combinando varios combobox que los llenas de tu BD, busca en el foro el tema de "combobox"
Saludos
__________________
Chiloé
  #3 (permalink)  
Antiguo 28/06/2005, 11:46
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 12 años, 5 meses
Puntos: 0
Aqui te dejo el link
http://www.forosdelweb.com/o.php?htt...06&postcount=8
__________________
Chiloé
  #4 (permalink)  
Antiguo 28/06/2005, 12:01
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 14 años, 6 meses
Puntos: 60
Hice esta pequeña prueba algo asi podrias hacer

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<script LANGUAGE="JavaScript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<?php
function Conectarse() 
{ 
//aqui va tu nombre de usuario y tu contraseña
   if (!($link=mysql_connect("localhost","snk","123456"))) 
   { 
      echo "Error conectando a la base de datos."; 
      exit(); 
   } 
// nombre de la base de datos
   if (!mysql_select_db("provincias",$link)) 
   { 
      echo "Error seleccionando la base de datos."; 
      exit(); 
   } 
   return $link; 
} 
	  //aqui hacemos que muestre segun el tipo de dato
	  $link=Conectarse();
	  ?>
	 	  <?php
	 $query1 = mysql_query("select * FROM provincia order by provincia ASC",$link) or die (mysql_error()); 
	 ?>
 <select name="localidad"onChange="MM_jumpMenu('this',this,0)">
 <?php
       echo("<option value='Seleccionar'>Seleccionar</option>\n");
  						while($row1 = mysql_fetch_array($query1)){
   echo("<option value='".$_SERVER["PHP_SELF"]."?provincia=".$row1["provincia"]."'>".$row1["provincia"]."</option>\n"); 
   }
  echo  ("</select>\n");
  ?>
			  <?php
	 $provincia = $_GET["provincia"];
 $query2 = mysql_query("select * FROM localidad Where provincia = '$provincia' order by localidad ASC",$link) or die (mysql_error()); 
  echo("<select name='localidad' id='localidad'>\n");
       echo("<option value='Seleccionar'>Seleccionar</option>\n");
  						while($row2 = mysql_fetch_array($query2)){
   echo("<option value='".$row2["id_localidad"]."'>".$row2["localidad"]."</option>\n"); 
   }
  echo  ("</select>\n");
  ?>
</head>

<body>

</body>
</html>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #5 (permalink)  
Antiguo 28/06/2005, 15:48
Avatar de miguelon76  
Fecha de Ingreso: junio-2005
Ubicación: Malaga
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Sonrisa Gracias a todos

Muchas gracias por vuestras aportaciones espero me ayuden a solucionar el problema yo la verdad es que de javascript toy mas bien pez asi que tndre que ponerme las pilas me parece jajaja. Gracias de nuevo ya os contare mis experiencias
  #6 (permalink)  
Antiguo 06/07/2005, 05:56
Avatar de miguelon76  
Fecha de Ingreso: junio-2005
Ubicación: Malaga
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Problemas con javascript

Pues probe la funcion de SSX pero resulta que al recargar la pagina, el resto de los valores de los campos los pierdo, por lo cual no dispongo de ellos a la hora de hacer la consulta de insercion en BD, tengo un codigo q he sacado del foro javascript de esta pagina pero no me funciona y x mas vueltas que le doy no lo consigo, si alguien con conocimientos mas profundos de javascript (soy muy novato) me echara una mano seria genial. Ahi os va el codigo javascrip:

<script language="javascript">
function rellenar(cod_prov){

alert(cod_prov);
document.Add.loc.lenght=0;
document.Add.loc.options[0] = new Option("-- Seleccione --","","defaultSelected","");
var indice=1;

<?
$sql = "SELECT * from localidades";
$rs = mysql_query($sql,$enlace);
if(mysql_num_rows($rs)>0)
{
while($row = mysql_fetch_assoc($rs))
{

?>
if(cod_prov=='<?=$row["codprov"]?>')
{

document.Add.loc.options[indice] = new Option("<?=$row["localidad"]?>","<?=$row["id"]?>");
indice++;
}
<?
}
}
?>
}

</script>

La idea es cargar la informacion de las localidades segun la provincia seleccionada sin tener que recargar las pagina para no perder el resto de datos del formulario.

Muchas gracias de antemano y un saludo.

Última edición por miguelon76; 07/07/2005 a las 04:02
  #7 (permalink)  
Antiguo 06/07/2005, 06:20
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 15 años
Puntos: 3
w3b3stiL0

Cita:
Iniciado por _ssx
Hice esta pequeña prueba algo asi podrias hacer

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<script LANGUAGE="JavaScript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<?php
function Conectarse() 
{ 
//aqui va tu nombre de usuario y tu contraseña
   if (!($link=mysql_connect("localhost","snk","123456"))) 
   { 
      echo "Error conectando a la base de datos."; 
      exit(); 
   } 
// nombre de la base de datos
   if (!mysql_select_db("provincias",$link)) 
   { 
      echo "Error seleccionando la base de datos."; 
      exit(); 
   } 
   return $link; 
} 
	  //aqui hacemos que muestre segun el tipo de dato
	  $link=Conectarse();
	  ?>
	 	  <?php
	 $query1 = mysql_query("select * FROM provincia order by provincia ASC",$link) or die (mysql_error()); 
	 ?>
 <select name="localidad"onChange="MM_jumpMenu('this',this,0)">
 <?php
       echo("<option value='Seleccionar'>Seleccionar</option>\n");
  						while($row1 = mysql_fetch_array($query1)){
   echo("<option value='".$_SERVER["PHP_SELF"]."?provincia=".$row1["provincia"]."'>".$row1["provincia"]."</option>\n"); 
   }
  echo  ("</select>\n");
  ?>
			  <?php
	 $provincia = $_GET["provincia"];
 $query2 = mysql_query("select * FROM localidad Where provincia = '$provincia' order by localidad ASC",$link) or die (mysql_error()); 
  echo("<select name='localidad' id='localidad'>\n");
       echo("<option value='Seleccionar'>Seleccionar</option>\n");
  						while($row2 = mysql_fetch_array($query2)){
   echo("<option value='".$row2["id_localidad"]."'>".$row2["localidad"]."</option>\n"); 
   }
  echo  ("</select>\n");
  ?>
</head>

<body>

</body>
</html>
jajaja otro que aprendio en webestilo xD ;)
todos los que lo aprendimos alli lo hacemos iwal jaja $link, conectarse $row... saludos!
__________________
aste nagusia
  #8 (permalink)  
Antiguo 07/07/2005, 03:56
Avatar de miguelon76  
Fecha de Ingreso: junio-2005
Ubicación: Malaga
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Y sigo en las mismas

Aqui les pongo el codigo html de los 2 selects culpables de que este perdiendo el sueño esta semana.

Formulario Html
<tr><td align="center">Provincia:</td><td align="left"><select name="prov" onChange="rellenar(this.value)"><? mostrarprov($provin); ?></select></td></tr>
<tr><td align="center">Localidad:</td><td align="left"><select name="loc"></select></td></tr>

La funcion mostrarprov me rellena el select con las provincias pero como he dicho antes el evento onChange no ejecuta la funcion rellenar ya que el alert(cod_prov) que tengo en la funcion ni siquiera se ejecuta.

Espero y deseo que me puedan echar una mano a revisar el codigo, gracias de antemano y un saludo.
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 08:52.