Necesito una ayuda , acabo de desarrolar 3 selects dependientes con una base de datos en mysql con una sola tabla , el caso es que creo que todo el codigo esta bien pero no me carga el tercer select. creo el problema puesde estar en
doAjax('dependientes1.php','tipo1=' + document.formu.tipo1.value + '&provincia=' + document.formu.s_provincias.text ,'dependiente1','post','1');
porque le envio por tipo1.value unas de las obciones del select,ejemplo: industria y no se si esto lo admite creo que solo admite numeros, en fin puede que este equivocado , si me echais una mano os lo agradeceria.
Un saludo a todos y hasta pronto
aqui dejo el codigo:
<script language="javascript" src="miAJAXlib.js"></script>
<script language="javascript">
// Función que recoge los datos de las provincias del xml desde el script de PHP.
function dependiente(xml_provincias)
{
// Eliminamos todos los options del select de las provincias que pudieran ver.
selec=document.getElementById('s_provincias');
while (selec.hasChildNodes())
{
selec.removeChild(selec.firstChild);
}
// Calculamos el número de provincias a mostrar.
var numero=xml_provincias.getElementsByTagName("provin cia").length;;
for(i=0;i<numero;i++) // Por cada pueblo resultante
{
// Cogemos el nombre de las provincias
var nombre_provincia = xml_provincias.getElementsByTagName("provincia")[i].childNodes[1].firstChild.nodeValue;
// Cogemos las provincias de nuevo porque no queremos otra cosa .
var id_provincia = xml_provincias.getElementsByTagName("provincia")[i].childNodes[0].firstChild.nodeValue;
// Creamos un nodo texto, con el nombre de la provincia
var nodo_texto = document .createTextNode(nombre_provincia);
// Creamos un elemento option
var nuevo_option = document.createElement('option');
// Añadimos el texto al option creado.
nuevo_option.appendChild(nodo_texto);
// Añadimos el option creado al select con name "s_provincias"
selec.appendChild(nuevo_option);
// Añadimos el atributo value al option recien creado
nuevo_option.setAttribute("value",id_provincia);
}
llamada1();
}
// Función que recoge los datos xml desde el script de PHP.
function dependiente1(xml_pueblos)
{
// Eliminamos todos los options del select de los pueblos que pudieran ver.
selec=document.getElementById('s_pueblo');
while (selec.hasChildNodes())
{
selec.removeChild(selec.firstChild);
}
// Calculamos el número de pueblos a mostrar.
var numero=xml_pueblos.getElementsByTagName("pueblo"). length;;
for(i=0;i<numero;i++) // Por cada pueblo resultante
{
// Cogemos el nombre del pueblo
var nombre_pueblo = xml_pueblos.getElementsByTagName("pueblo")[i].childNodes[1].firstChild.nodeValue;
// Cogemos el id del pueblo, es el id del pueblo en la base de datos.
var id_pueblo = xml_pueblos.getElementsByTagName("pueblo")[i].childNodes[1].firstChild.nodeValue;
// Creamos un nodo texto, con el nombre del pueblo
var nodo_texto = document .createTextNode(nombre_pueblo);
// Creamos un elemento option
var nuevo_option = document.createElement('option');
// Añadimos el texto al option creado.
nuevo_option.appendChild(nodo_texto);
// Añadimos el option creado al select con name "s_pueblo"
selec.appendChild(nuevo_option);
// Añadimos el atributo value al option recien creado
nuevo_option.setAttribute("value",id_pueblo);
}
}
// Funcion que se ejecuta al cargar la página y al cambiar de tipo de suelo.
function llamada()
{
// Hacemos la llamada asíncrona al server.
doAjax('dependientes.php','tipo=' + document.formu.tipo1.value,'dependiente','post','1 ');
}
// Funcion que se ejecuta al cargar una provincia
function llamada1()
{
// Hacemos la segunda llamada asíncrona al server.
doAjax('dependientes1.php','tipo1=' + document.formu.tipo1.value + '&provincia=' + document.formu.s_provincias.text ,'dependiente1','post','1');
}
</script>
<!-- NEWS TABLE 1 -->
<?
// Conectamos a la base de datos
require_once("conectar.php");
// Query a la base de datos.
$s="Select * from busquedasuelo group by tipo";
$r=mysql_query($s);
?>
</p>
<form name="formu" method="post" action="resultado.php">
<table width="490" border="0" cellpadding="10">
<tr>
<td width="157" valign="middle">Seleccione tipo de suelo</td>
<td width="5" valign="middle">:</td>
<td width="260" valign="middle"><select name="tipo" id="tipo1" onChange="llamada();" size="1" style="width:178px" >
<option value="0">seleccionar...</option>
<?
while($R=mysql_fetch_array($r))
{
?>
<option value="<?=$R['id']?>"><?=$R['tipo']?></option>
<?
}
?>
</select></td>
</tr>
<tr>
<td valign="middle">Seleccione la provincia</td>
<td valign="middle">:</td>
<td valign="middle"> <div>
<select name="provincias" size="1" class="navLink" id="s_provincias" onChange="llamada1();" style="width:178px" >
</select>
</div> </td>
</tr>
<tr>
<td valign="middle">Seleccione la población </td>
<td valign="middle">:</td>
<td valign="middle"><select name="pueblos" size="1" class="navLink" id="s_pueblo" style="width:178px">
<option>seleccionar... </option><br>
<option selected>Todas las poblaciones</option>
</select></td>
</tr>
<tr>
<td> &nbs p; <label>
<input type="submit" name="Submit" value="Buscar">
</label></td>
<td> </td>
<td><label>
<input type="reset" name="Submit2" value="Borrar">
</label></td>
</tr>
</table>
<br>
<br>
<hr class="page-splits">
</form>