Ver Mensaje Individual
  #17 (permalink)  
Antiguo 14/11/2006, 16:09
bellidin
 
Fecha de Ingreso: octubre-2006
Ubicación: España
Mensajes: 37
Antigüedad: 18 años, 4 meses
Puntos: 0
Necesitaba algo parecido en mi pagina y estuve probando. Lo entiendo todo pero no termina de funcionarme. Descargue la libreria baaSelect.php y el código del archivo en el que lo iba a meter es este:

Código:
<? $sel->addSelect('Paises', 'vns_country', 'CountryNameS', 'CountryName','',1,'-- Seleccione --');
$sel->addSelect('Provincias', 'vns_state', 'SName', 'StateName','StateCountry', 1,'-- Seleccione --');

/*Se termina con el HTML y llamando a dos metodos 
de la clase makeScript() en el head que escupe todo 
el JavaScript necesario para evitar recargar la página 
y makeSelect('nombreSelect') dentro de etiquetas form 
para crear los <select>*/
?>
<HTML>
<HEAD>

<title>Ejemplo</title>

<? $sel->makeScript() ?>

</HEAD>
<BODY>
<form method="get">
<strong>Pais: </strong><? $sel->makeSelect('Paises'); ?> <br />
<strong>Estado: </strong><? $sel->makeSelect('Provincias'); ?> <br />
</form>
</BODY>
</HTML>
Está todo bien, inclusive el tema de los campos y la clave foranea. La cuestión es que cuando voy a visualizarlo me da un error Javascript diciendome que "ES is not defined" (Esto lo se por un depurador Javascript). ES es el codigo del Pais, en este caso España que tiene provincias asociadas, porque para probar unicamente puse tres provincias a España.

El codigo que genera el script y que se inserta en el head de la pagina de prueba es este

Código:
<SCRIPT language="JavaScript" type="text/javascript">
<!-- 

var currentPaises = 0 ;
var currentProvincias = 0 ;

var arrayProvinciasTXT = new Array();
var arrayProvinciasVAL = new Array();
arrayProvinciasTXT[0] = "";
arrayProvinciasVAL[0] = 0;
arrayProvinciasTXT[ES] = "CADIZ|HUELVA|SEVILLA";

arrayProvinciasVAL[ES] = "CA|HU|SE";



function baaSelectUpdateProvincias (form) {

               currentPaises = form.Paises.options[form.Paises.selectedIndex].value;

               while (form.Provincias.options.length) {
                    form.Provincias.options[0] = null;
               }
               var tmp = new String (arrayProvinciasTXT[currentPaises]);
               var arrayText = tmp.split("|");
               tmp = new String (arrayProvinciasVAL[currentPaises]);
               var arrayVals = tmp.split("|");

               var optionlist = form.Provincias.options;
               optionlist[0] = new Option();
               optionlist[0].value = 0;
               optionlist[0].text = "-- Seleccione --";
               if (arrayProvinciasTXT[currentPaises]) {
                   for (var i=0; i<arrayText.length; i++) {
                        optionlist[i+1]=new Option();
                        optionlist[i+1].value = arrayVals[i];
                        optionlist[i+1].text = arrayText[i];
                        if (currentProvincias == arrayVals[i])
                            optionlist[i+1].selected = true;
                   }
               }
               
}

// generated by baaSelect.php  -->
</SCRIPT>

Y concretamente aquí, donde falla:

Código:
arrayProvinciasTXT[ES] = "CADIZ|HUELVA|SEVILLA";
arrayProvinciasVAL[ES] = "CA|HU|SE";
Alguien puede ayudarme??