Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2004, 08:12
Avatar de alexis77
alexis77
 
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
Select Encadadenados

Hola, quiero hacer los select asociado, intente hacer pero no pude

no se como aplicar el siguiente codigo:

<HTML>
<HEAD>
<TITLE>Ejemplo de Select encadenados</TITLE>
<SCRIPT language="JavaScript">

// Valores posibles del primer select
valores1= new Array();
valores1[0]="Argentina";
valores1[1]="Colombia";
valores1[2]="España";
valores1[3]="México";

// Valores posibles del segundo select
// Valores asociado a la primera opción del primer select
fila1= new Array();
fila1[0]="Buenos Aires";
fila1[1]="Cordoba";
fila1[2]="Mendoza";
fila1[3]="Santa Cruz";

// Valores asociado a la segunda opción del primer select
fila2= new Array();
fila2[0]="Bogotá";
fila2[1]="Cali";
fila2[2]="Barranquilla";
fila2[3]="Medellín";

// Valores asociado a la tercera opción del primer select
fila3= new Array();
fila3[0]="Madrid";
fila3[1]="Barcelona";
fila3[2]="Valencia";
fila3[3]="Sevilla";
fila3[4]="Bilbao";


// Valores asociado a la cuarta opción del primer select
fila4= new Array();
fila4[0]="México D.F.";
fila4[1]="Guadalajara";
fila4[2]="Monterrey";

// Array de filas de opciones
valores2= new Array();
valores2[0]=fila1;
valores2[1]=fila2;
valores2[2]=fila3;
valores2[3]=fila4;

// Escribe el código HTML correspondiente a las opciones del Select1
function escribeopcionesselect(valores1)
{
for (var i=0;i<valores1.length;i++)
{
window.document.write('<OPTION VALUE="'+valores1[i]+'">'+
valores1[i]+'</OPTION>');
}
}

// Escribe el código HTML correspondiente a las opciones del Select2
function escribeopcionesselect2(indice,valores2)
{
escribeopcionesselect(valores2[indice]);
}

// Actualiza las opciones del segundo Select en función del primero
function cambiaselect2(form,nombreo,nombred,valores2)
{
// Obtención del índice activo en el primer select
var cadena="form."+nombreo+".selectedIndex";
var indice=eval(cadena);
// Obtención del objeto que representa al segundo select
var aux='form.'+nombred;
objeto=eval(aux);
// Actualización de las opciones posibles del segundo select
objeto.length=valores2[indice].length;
for (var i=0; i<valores2[indice].length;i++)
{
objeto.options[i].text=valores2[indice][i];
objeto.options[i].value=valores2[indice][i];
}
// Se activa la primera opción del segundo select
objeto.selectedIndex=0;
}

</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="">

<BR><BR>
<CENTER>
<B>Select encadenados</B><BR><BR>
Pais:
<SELECT NAME="select1"
onChange="cambiaselect2(form,'select1','select2',v alores2)">
<SCRIPT language="JavaScript">escribeopcionesselect(valore s1)</SCRIPT>
</SELECT>
&nbsp&nbsp&nbsp
Ciudad:
<SELECT NAME="select2">
<SCRIPT language="JavaScript">escribeopcionesselect2(0,val ores2)</SCRIPT>
</SELECT><BR>
</CENTER>
</FORM>
</BODY>
</HTML>


ahora quiero aplicar ese mismo codigo en php+mysql
tenniendo la siguientes tablas

CREATE TABLE `pais` (
`id_pais` tinyint(3) NOT NULL auto_increment,
`pais` varchar(100) default NULL,
PRIMARY KEY (`id_pais`)
) TYPE=MyISAM AUTO_INCREMENT=5;

INSERT INTO `pais` VALUES (1, 'Argentina');
INSERT INTO `pais` VALUES (2, 'España');
INSERT INTO `pais` VALUES (3, 'Perú');
INSERT INTO `pais` VALUES (4, 'Venezuela');



CREATE TABLE `ciudades` (
`id_ciudad` int(3) NOT NULL auto_increment,
`id_p` int(3) NOT NULL default '0',
`ciudad` varchar(100) default NULL,
PRIMARY KEY (`id_ciudad`)
) TYPE=MyISAM AUTO_INCREMENT=16;

INSERT INTO `ciudades` VALUES (1, 1, 'Buenos Aires\r');
INSERT INTO `ciudades` VALUES (2, 1, 'Cordoba\r');
INSERT INTO `ciudades` VALUES (3, 1, 'Mendoza\r');
INSERT INTO `ciudades` VALUES (4, 2, 'Madrid\r');
INSERT INTO `ciudades` VALUES (5, 2, 'Barcelona\r');
INSERT INTO `ciudades` VALUES (6, 2, 'Sevilla\r');
INSERT INTO `ciudades` VALUES (7, 2, 'Valencia\r');
INSERT INTO `ciudades` VALUES (8, 3, 'Arequipa\r');
INSERT INTO `ciudades` VALUES (9, 3, 'Cusco\r');
INSERT INTO `ciudades` VALUES (10, 3, 'Lima\r');
INSERT INTO `ciudades` VALUES (11, 3, 'Tacna\r');
INSERT INTO `ciudades` VALUES (12, 3, 'Caracas\r');
INSERT INTO `ciudades` VALUES (13, 3, 'Distrito Capital\r');
INSERT INTO `ciudades` VALUES (14, 3, 'Maracaibo\r');
INSERT INTO `ciudades` VALUES (15, 3, 'Valencia\r');


Quiero utilizar este codigo porq funciona perfectamente en nescape.


Ojala me puedan ayudar....