Ver Mensaje Individual
  #21 (permalink)  
Antiguo 15/02/2007, 12:55
lajimy
 
Fecha de Ingreso: noviembre-2006
Mensajes: 37
Antigüedad: 17 años, 5 meses
Puntos: 0
SOLUCIONADO cargar dos combobox uno dependiente del otro

Finalmente lo logre!! Solucione mi problema lo mando por si alguien precisa de el!
Lo tome de un ejemplo que encontre por ahi y le hice un par de adaptaciones para mi caso. Usa dos paginas php (juegos_popup y procesoMarcas)

juegos_popup.php
require_once("includes/conn.php");
<!--
Este código fuente es de libre utilización y modificación bajo la siguiente licencia:
creativecommons.org/licenses/by-nc-sa/2.5/
Puedes distribuir estos scripts o colocarlos en tu Sitio siempre y cuando no elimines estos
comentarios y la licencia expuesta sea respetada.

Mas ejemplos y material sobre AJAX en: 3w.formatoweb.com.ar/ajax
Cualquier sugerencia, crítica o comentario son bienvenidos.
Contacto: [email protected]
-->

<SCRIPT language="javascript" type="text/javascript">
function nuevoAjax(){
/* Crea el objeto AJAX.*/
var xmlhttp=false;
try{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E){
xmlhttp=false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp=new XMLHttpRequest();
}
return xmlhttp;
}

function cargarMarcas(){
var idSel=document.getElementById("cboMarca").options[document.getElementById("cboMarca").selectedIndex].value;
var marcaSel =document.getElementById("cboMarca").options[document.getElementById("cboMarca").selectedIndex].text;

if(idSel==0){
// Si el usuario no selecciono nada, no voy al servidor y pongo todo por defecto
combo=document.getElementById("cboModelo");
combo.length=0;
var nuevaOpcion=document.createElement("option");
nuevaOpcion.value=0;
nuevaOpcion.innerHTML="-Seleccione su modelo-";
combo.appendChild(nuevaOpcion); combo.disabled=true;
}else{
ajax=nuevoAjax();
ajax.open("GET", "procesoMarcas.php?idSel="+idSel+"&marcaSel="+marc aSel, true);
ajax.onreadystatechange=function(){
if (ajax.readyState==1){
// Mientras carga dice "Cargando"
combo=document.getElementById("cboModelo");
combo.length=0;
var nuevaOpcion=document.createElement("option");
nuevaOpcion.value=0;
nuevaOpcion.innerHTML="Cargando...";
combo.appendChild(nuevaOpcion);
combo.disabled=true;
}
if (ajax.readyState==4){
document.getElementById("modelos").innerHTML=ajax. responseText;
}
}
ajax.send(null);
}
}
</SCRIPT>
<td id="marcas">
<?php
$sqlMarca = "SELECT DISTINCT marca, id FROM celJuego WHERE id = $id ORDER BY marca";
$marcas = mysql_query($sqlMarca,$conn)or die(mysql_error());
echo "<select name='cboMarca' id='cboMarca' onChange='cargarMarcas()'>";
echo "<option value='0'>-Seleccione una marca-</option>";
while ($rs = mysql_fetch_assoc($marcas)){
echo "<option value='".$rs['id']."'>".$rs['marca']."</option>";
}
echo "</select>";
?>
</td>
<td id="modelos">
<select name="cboModelo" id="cboModelo" disabled="disabled">
<option value="0">-Seleccione su modelo-</option>
</select>
</td>

procesoMarcas.php
<?php
require_once("includes/conn.php");
$marca = $_GET["marcaSel"];
$id = $_GET["idSel"];

$sqlModelos = "SELECT modelo FROM celJuego WHERE id = $id AND marca = '$marca' ORDER BY modelo";
$modelos = mysql_query($sqlModelos, $conn)or die(mysql_error());
echo "<select name='cboModelo' id='cboModelo'>";
while ($rs = mysql_fetch_assoc($modelos)){
echo "<option value='".$rs['id']."'>".$rs['modelo']."</option>";
}
echo "</select>";
?>
Saludos y suerte