Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/04/2009, 07:08
javiersf
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
select dependiente de otro select

Hola de nuevo peña, ya lo tengo casi todo terminado pero me he vuelto a atascar de nuevo en el formulario de registro de empresas ya que decidi hacerlo por pasos y de moemtno los pasos funcionan perfectamente pero en el ultimo de los pasos me gustaria hacer que al seleccionar de la tabla regiones me muestre su correspondiente ciudad o pueblo de la tabla ciudades.


Es decir elijo en la primera select por poner un ejemplo Sevilla y en la siguiente select me deveria de mostrar solo las ciudades de sevilla.

Las tablas ya las tengo armadas y con todas las regiones y las ciudades de españa entera,un trabajo de narices pero que ya esta hecho.

las tablas que cree para ello son las siguientes.

Código:
CREATE TABLE `regiones` (
`reg_ID` int(10) NOT NULL default '0',
`regRegiones` char(50) character set latin1 collate latin1_spanish_ci NOT NULL default '',
`contador` int(10) NOT NULL default '0',
PRIMARY KEY  (`reg_ID`)
) ENGINE=MyISAM;
Código:
CREATE TABLE `ciudades` (
  `ciud_ID` int(5) NOT NULL default '0',
  `ciudCiudades` varchar(50) character set latin1 collate latin1_spanish_ci NOT NULL default '',
  `contador` int(10) NOT NULL default '0',
  PRIMARY KEY  (`ciud_ID`)
) TYPE=MyISAM;
y a la hora de insertarle por ejemplo a regiones las regiones las meti de la siguiente manera :

Código:
INSERT INTO `regiones` (`reg_ID`, `regRegiones`, `contador`) VALUES (501, 'Álava', 0),
(502, 'Albacete', 0),
(503, 'Alicante', 0),
(504, 'Almería', 0),
(505, 'Asturias', 0),
(506, 'Ávila', 0),
(507, 'Badajoz', 0),
(508, 'Islas Baleares', 0),
(509, 'Barcelona', 0),
(510, 'Burgos', 0),
(511, 'Cáceres', 0),
(512, 'Cádiz', 0),
(513, 'Cantabria', 0),
(514, 'Castellón', 0),
(515, 'Ceuta', 0),
(516, 'Ciudad Real', 0),
(517, 'Córdoba', 0),
(518, 'La Coruña', 0),
(519, 'Cuenca', 0),
(520, 'Gerona', 0),
(521, 'Granada', 0),
(522, 'Guadalajara', 0),
(523, 'Guipúzcoa', 0),
(524, 'Huelva', 0),
(525, 'Huesca', 0),
(526, 'Jaén', 0),
(527, 'León', 0),
(528, 'Lérida', 0),
(529, 'Lugo', 0),
(530, 'Madrid', 0),
(531, 'Málaga', 0),
(532, 'Melilla', 0),
(533, 'Murcia', 0),
(534, 'Navarra', 0),
(535, 'Orense', 0),
(536, 'Palencia', 0),
(537, 'Las Palmas', 0),
(538, 'Pontevedra', 0),
(539, 'La Rioja', 0),
(540, 'Salamanca', 0),
(541, 'Santa Cruz de Tenerife', 0),
(542, 'Segovia', 0),
(543, 'Sevilla', 0),
(544, 'Soria', 0),
(545, 'Tarragona', 0),
(546, 'Teruel', 0),
(547, 'Toledo', 0),
(548, 'Valencia', 0),
(549, 'Valladolid', 0),
(550, 'Vizcaya', 0),
(551, 'Zamora', 0),
(552, 'Zaragoza', 0);
y en la tabla de ciudades hice igual pero con las ciudades,pongo unas cuantas lineas de ejemplo :

Código:
INSERT INTO `ciudades` (`ciud_ID`, `ciudCiudades`) VALUES (5010001, 'Alegría'),
(5010002, 'Amurrio'),
(5010003, 'Añana'),
(5010004, 'Aramaio'),
(5010005, 'Armiñón'),
(5010006, 'Arraya-Maestu'),
(5010007, 'Arrazua-Ubarrundia'),
(5010008, 'Artziniega'),
(5010009, 'Asparrena'),
(5010010, 'Ayala'),
(5010011, 'Baños de Ebro'),
(5010012, 'Barrundia'),
(5010013, 'Berantevilla'),
(5010014, 'Bernedo'),
(5010015, 'Campezo'),
(5010016, 'Cripán'),
(5010017, 'Cuartango'),
(5010018, 'Elburgo'),
(5010019, 'Elciego'),
(5010020, 'Elvillar'),
(5010021, 'Iruña de Oca'),
(5010022, 'Iruraiz-Gauna'),
(5010023, 'Labastida'),
(5010024, 'Lagrán'),
(5010025, 'Laguardia'),
(5010026, 'Lanciego'),
(5010027, 'Lantarón'),
(5010028, 'Lapuebla de Labarca'),
(5010029, 'Legutiano'),
(5010030, 'Leza de Álava'),
(5010031, 'Llodio'),
(5010032, 'Moreda de Álava'),
(5010033, 'Navaridas'),
(5010034, 'Okondo'),
(5010035, 'Oyón'),
(5010036, 'Peñacerrada'),
(5010037, 'Ribera Alta'),
(5010038, 'Ribera Baja'),
(5010039, 'Salvatierra'),
(5010040, 'Samaniego'),
(5010041, 'San Millán'),
(5010042, 'Urkabustaiz'),
(5010043, 'Valdegovía'),
(5010044, 'Valle de Arana'),
(5010045, 'Villabuena de Álava'),
(5010046, 'Vitoria'),
(5010047, 'Yécora'),
(5010048, 'Zalduendo'),
(5010049, 'Zambrana'),
(5010050, 'Zigoitia'),
(5010051, 'Zuya'),
(5020001, 'Abengibre'),
(5020002, 'Alatoz'),
(5020003, 'Albacete'),

todo ello basandome en manuales de por aqui y tutoriales de otras paginas web.

ahora el tema esta en que a la hora de querer seleccionar los datos en el formulario los tengo asi :

Código PHP:
<fieldset>

<p>
Región:<br />

<select name="regRegiones">
<option value="">Escoger de la Lista</option>
<?php
// asignamos una region a la empresa
// mediante un select
$sqlQueryCat mysql_query("SELECT * FROM regiones"$db_link)
or die(
mysql_error());
// creamos un bucle while
// que nos muestre todas las regiones
// que tenemos guardadas en la BD
while($rowCat mysql_fetch_array($sqlQueryCat)){
echo 
"<option value='$rowCat[reg_ID]'>$rowCat[regRegiones]</option>";
}


?>
</select>
</p>
<br>
<p>
Ciudad o Pueblo:<br />

<select name="ciudCiudades">
<option value="">Escoger de la Lista</option>
<?php
// asignamos una region a la empresa
// mediante un select
$sqlQueryCat mysql_query("SELECT * FROM ciudades"$db_link)
or die(
mysql_error());
// creamos un bucle while
// que nos muestre todas las ciudades
// que tenemos guardadas en la BD
while($rowCat mysql_fetch_array($sqlQueryCat)){
echo 
"<option value='$rowCat[reg_ID]'>$rowCat[ciudCiudades]</option>";
}


?>
</select>
</p>
</fieldset>
<fieldset>
y me muestra todo lo que hay en la tabla de regiones en el primer select y en el segundo select todo lo de las ciudades,

bien el tema es que me gustaria que al seleccionar el primer select osea el de regiones este me de a elejir solo entre las ciudades referentes a esa region en el segundo.

es decir si selecciono madrid como regiones en el primer selct que en el segundo me muestre las ciudades que tengo registradas dentro de madrid.

lo he intentado con ajax y javascript pero se me hace todo muy lioso,descargue incluso de una pagina que citabais en otros post parecidos a este y lo monte pero al igual que anmteriormente se me atascaba todo y decidi por buscar algo mas simple aunque sea mas cutre pero que sea funcional.

por lo que si pudieran ayudarme a hacer esta funcion les estare muy agradecido.

un saludo compañeros.