Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Duda con Combos dependientes PHP / AJAX

Estas en el tema de Duda con Combos dependientes PHP / AJAX en el foro de Frameworks JS en Foros del Web. Hola !! Tengo el siguiente script que me funciona ok al querer insertar un registro. De acuerdo al campo que elija en el combo se ...
  #1 (permalink)  
Antiguo 30/09/2009, 14:28
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 9 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 !!!
  #2 (permalink)  
Antiguo 30/09/2009, 21:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con Combos dependientes PHP / AJAX

Tema trasladado desde PHP
  #3 (permalink)  
Antiguo 17/01/2011, 09:50
Avatar de Diosus  
Fecha de Ingreso: noviembre-2003
Ubicación: Lima
Mensajes: 112
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Duda con Combos dependientes PHP / AJAX

Maxi_lance; fijate que el array esas apuntando a otras cosas

$listadoSelects=array(
"select1"=>"scEdificio",
"select2"=>"scMontante",
"select3"=>"scBloqueParCentral"
);

Debe ser así

$listadoSelects=array(
"select1"=>"select_1",
"select2"=>"select_2",
"select3"=>"select_3"
);

Eso porque el bucle While que abres direcciona select_1, select_2... y así debe estar nombrado en la tabla mysql.
__________________
José Olsson G.
MyCoctel PRO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:32.