Hola
bueno, en ese caso, que partes puntuales no entiendes?
Código Javascript
:
Ver original<script>
//Función inicial apenas el documento este disponible
$(document).ready(function(){
//Evento de cambio de valor en el select
$("select").change(function(){
// Vector para saber cuál es el siguiente combo a llenar
var combos = new Array();
combos['publicacion'] = "edicion";
//combos['estado'] = "ciudad";
// Tomo el nombre del combo al que se le a dado el clic por ejemplo: país
posicion = $(this).attr("name");
// Tomo el valor de la opción seleccionada
valor = $(this).val()
// Evaluó que si es país y el valor es 0, vacié los combos de estado y ciudad
if(posicion == 'publicacion' && valor==0){
//se asigna valores al combo
$("#edicion").html(' <option value="0" selected="selected">----------------</option>')
//$("#ciudad").html(' <option value="0" selected="selected">----------------</option>')
}else{
/* En caso contrario agregado el letreo de cargando a el combo siguiente
Ejemplo: Si seleccione país voy a tener que el siguiente según mi vector combos es: estado por qué combos [país] = estado
*/
$("#"+combos[posicion]).html('<option selected="selected" value="0">Cargando...</option>')
/* Verificamos si el valor seleccionado es diferente de 0 y si el combo es diferente de ciudad, esto porque no tendría caso hacer la consulta a ciudad porque no existe un combo dependiente de este */
if(valor!="0" || posicion !='edicion'){
// Llamamos a pagina de combos.php donde ejecuto las consultas para llenar los combos
$.post("combo.php",{
combo:$(this).attr("name"), // Nombre del combo
id:$(this).val() // Valor seleccionado
},function(data){
//se reciben datos de combo.php
$("#"+combos[posicion]).html(data); //Tomo el resultado de pagina e inserto los datos en el combo indicado
})
}
}
})
})
</script>
Ahora el codigo de combo.php
Código PHP:
Ver original<?php
//incluye conexión
include('modelo/conexion.php');
//recive id seleccionado
$idcombo = $_POST["id"];
$obj= new Original();
//Consulta a la bd
$Q=$obj->RecEd($idcombo);
//se imprimen tantos options como datos se tengan en la bd
while ( $row = oci_fetch_array($Q, OCI_RETURN_NULLS) )
{
echo '<option value="'.$row[0].'">'.htmlentities($row[1]).'</option>'; }
oci_free_statement($Q);
?>
Agregue solo algunos comentarios pues el resto ya
tienes comentarios bastante explicativos
si tienes otra duda puntual, entonces dispara
saludos