Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/09/2009, 14:28
Avatar de maxi_lance
maxi_lance
 
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 18 años, 4 meses
Puntos: 2
Duda con Combos dependientes PHP / AJAX

Hola !!

Tengo el siguiente script que me funciona ok al querer insertar un registro. De acuerdo al campo que elija en el combo se me van desplegando las opciones con AJAX en el campo de abajo.

El problema es al querer editar el registro que esta insertado, no me toma los campos en los combos que tiene guardado cada registro en las tablas de la base.

En el primer combo que lo lee de la funcion generaSelect logre que leyera el campo que trae de la variable $_SESSION["idEdificio"] . Pero el segundo me aparece inactivo, es decir que no puedo hacer que lea el campo de la tabla ni tampoco que esté habilitado como para que me muestre las opciones.

archivo select_dependientes_3_niveles.php
Código PHP:
function generaSelect()
{
    include 
'conexion.php';
    
conectar();
    
$consulta=mysql_query("SELECT * FROM scEdificio");
    
desconectar();

    
// Voy imprimiendo el primer select compuesto por los paises
    
echo "<select name='select1' id='select1' onChange='cargaContenido(this.id)'>";
    echo 
"<option value='0'>Elige</option>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        echo 
"<option value='".$registro[0]."'" ;
        if (
$registro[0] == $_SESSION["idEdificio"]) { echo "selected=selected"; }
        echo 
">".$registro[1]."</option>";
    }
    echo 
"</select>";

Código HTML:
<tr>
<th><div align="left">Edificio:</div></th>
<th width="145"><?php generaSelect(); ?></th>
</tr>
<tr>
    <th><div align="left">Montante:</div></th>
    <th><select disabled="disabled" name="select2" id="select2">
<option value="0">Selecciona opci&oacute;n...</option>
</select></th>
</tr>
<tr>
    <th><div align="left">Equipo:</div></th>
    <th><select disabled="disabled" name="select3" id="select3">
<option value="0">Selecciona opci&oacute;n...</option>
</select></th>
</tr> 

archivo select_dependientes_3_niveles_proceso.php

Código PHP:
$listadoSelects=array(
"select1"=>"scEdificio",
"select2"=>"scMontante",
"select3"=>"scBloqueParCentral"
);

function 
validaSelect($selectDestino)
{
    global 
$listadoSelects;
    if(isset(
$listadoSelects[$selectDestino])) return true;
    else return 
false;
}

function 
validaOpcion($opcionSeleccionada)
{
    if(
is_numeric($opcionSeleccionada)) return true;
    else return 
false;
}

$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];

if(
validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
    
$tabla=$listadoSelects[$selectDestino];
    include 
'conexion.php';
    
conectar();
    
$consulta=mysql_query("SELECT * FROM $tabla WHERE relacion='$opcionSeleccionada'") or die(mysql_error());
    
desconectar();
    
    echo 
"<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
    echo 
"<option value='0'>Elige</option>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        
$registro[1] = htmlentities($registro[1]);
        echo 
"<option value='".$registro[0]."'";
        echo 
">".$registro[1]."</option>";
    }            
    echo 
"</select>";

El .js creo que no hace falta mostrarlo.

SI PUEDEN DARME UNA MANO SERIA BUENISIMO !!!