Cita:
Iniciado por vgonga1986 Aquí te paso un [URL="http://www.desarrolloweb.com/articulos/1327.php"]post[/URL] donde se hace sin AJAX, únicamente PHP (con dos páginas), pero te recomiendo que no te asustes ante AJAX, queda mucho mejor y, además, aprovechas para aprender a utilizarlo, luego vas a obtener mucha potencia y querrás usarlo en todos lados. Hazme caso.
Un saludo.
Bueno, decidi hacerte caso y usar ajax... pero no me funciona, tal vez es por alguna cosita sin importancia ( como recien voy aprendiendo no se muy bien ) o tal vez es que todo esta mal hecho .... xD
Pero busque en varios tutoriales, y esta bastante parecido... me gustaria saber si podrias ayudarme y darle una mirada a mi codigo...
es este:
infobasica.php
<?php
$con = new Conexion();
$distritos = $con->seleccionar("select desdist from public.distrito order by desdist");
$j = $con->getNum_result();
?>
<tr>
<td> <label for="lblDist">Distrito</label> </td>
<td>
<select name="selectDist" onchange="('CargarLocal.php', 'selectDist', 'divLocalidades')" id="selectDist">
<?php
for($i=0; $i<$j; $i++){
echo "<option value=$i>$distritos[$i]</option>";
}
?>
</select>
</td>
</tr>
<div id="divLocalidades">
<tr>
<td> <label for="lblLocal">Localidades</label> </td>
<td>
<select name="selectLocal" id="selectLocal" class="select">
</select>
</td>
</tr>
</div>
// Aqui es donde creo mis select, el primero de distritos lo lleno con los datos de la BD que esta en postgres.... y en localidades es donde se llenara de acuerdo al valor elegido en distrito....
funciones.php
<script>
function cargarCombo (url, comboAnterior, element_id) {
var petecion = requerir();
var element = document.getElementById(element_id);
var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value
var fragment_url = url+'?Id='+x;
peticion.open("GET", fragment_url);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}
function requerir(){
var peticion = false;
var testPasado = false;
try {
peticion = new XMLHttpRequest();
}
catch (trymicrosoft) {
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (othermicrosoft) {
try {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (failed) {
peticion = false;
}
}
}
return peticion;
}
</script>
// Aqui estan las funciones cargarcombo y requerir. La segunda es para obtener el objeto XMLHttpRequest... y la primera para llamar a la pagina que me cargara el combo localidades, y mandarle el valor del primer combo
CargarLocal.php
<?php
$Dist = $_REQUEST['Id'];
$con = new Conexion();
$sentencia = "select nomloc from rural.localidad where iddis=$Dist";
$localidades = $con->seleccionar($sentencia);
$j = $con->getNum_result();
?>
<tr>
<td> <label for="lblLocal">Localidades</label> </td>
<td>
<select name="selectLocal" id="selectLocal" class="select">
<?php
for($i=0; $i<$j; $i++){
echo "<option value=$i>$localidades[$i]</option>";
}
?>
</select>
</td>
</tr>
//Aqui es donde deberia llenar el segundo combo...
Gracias de antemano por la ayuda, espero que no sea mucha molestia el revisar el codigo....