Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/08/2011, 14:07
Avatar de ponney
ponney
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Select dependientes php

Cita:
Iniciado por vgonga1986 Ver Mensaje
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....