Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/04/2012, 13:39
Avatar de zalito12
zalito12
 
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: select dependiente que se puedan Actualizar

Ah, bueno, en ese caso...
Tienes que verlo de esta manera, ahora no son dependientes propiamente dichos, ya que tienen valor, o sea no que tienes que tener en cuenta que no se van a comportar igual, al menos al inicio, cuando cambies uno de ellos sí.
Si son 2 por ejemplo, como vas a editar los dos ya contienen datos! Y antes, seguramente, los dependientes no funcionaban hasta que elegías en el anterior.
No sé como tienes estructurada la base de datos pero te pondré un ejemplo sencillo:
Imagina que tienes un select provincia y otro ciudad.
En la DB tendrás
-tabla provincias con (id,nombre)
-Tabla ciudad con (id,idprov,nombre)
Pues bien, tu formulario de editar tendrás que cargarlo de una manera parecida a esta:
-Para el primer select, el de provincia, algo parecido a esto:
Código PHP:
$provincias mysql_query("SELECT * FROM provincias");
$user mysql_fetch_assoc(mysql_query("SELECT * FROM user WHERE id = '".$id_user."'"));
echo 
'<select name="provincia">';
while(
$op mysql_fetch_assoc($provincias)){
  if(
$op['id'] == $user['provincia']) echo '<option value="'.$op['nombre'].'" selected="selected">'.$op['nombre'].'</option>';
  else    echo 
'<option value="'.$op['nombre'].'">'.$op['nombre'].'</option>';
}
echo 
'</select>'
-Para el segundo select, manteniendo los datos de la consulta de $user:
Código PHP:
$ciudad mysql_query("SELECT * FROM ciudades WHERE idprov = '".$user['provincia']."'");
echo 
'<select name="ciudad">';
while(
$op mysql_fetch_assoc($ciudades)){
  if(
$op['id'] == $user['ciudad']) echo '<option value="'.$op['nombre'].'" selected="selected">'.$op['nombre'].'</option>';
  else    echo 
'<option value="'.$op['nombre'].'">'.$op['nombre'].'</option>';
}
echo 
'</select>'
IMPORTANTE: No olvides añadir la llamada al script para que sigan funcionando como dependientes cuando cambies el valor.
Si en tu campo de usuario no tienes el mismo valor que en identificador de la segunda tabla, si no que tienes el nombre por ejemplo, puedes usar otra consulta como esta:
Código PHP:
$ciudad mysql_query("SELECT * FROM ciudades WHERE idprov = (SELECT idprov FROM ciudades WHERE nombre = '".$user['provincia']."'")); 
Espero haberte ayudado, esto debería funcionarte ahora
Suerte!

Última edición por zalito12; 13/04/2012 a las 13:41 Razón: Cabecita Loca