Foros del Web » Programando para Internet » PHP »

lista de seleccion multiple dinamica con opcion selected="selected

Estas en el tema de lista de seleccion multiple dinamica con opcion selected="selected en el foro de PHP en Foros del Web. Hola a todos, tengo 2 tablas en la base de datos. Una llamada lista completa de idiomas (english, español) y otra tabla que se llama ...
  #1 (permalink)  
Antiguo 01/06/2013, 12:44
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Exclamación lista de seleccion multiple dinamica con opcion selected="selected

Hola a todos, tengo 2 tablas en la base de datos. Una llamada lista completa de idiomas (english, español) y otra tabla que se llama idiomas que son los idiomas que ha seleccionado el usuario.

quiero mostrar una lista dinamica de la lista de idiomas. que lo consigo bien. El problema es que quiero habilitar la opcion selected="selected" de la lista a los idiomas que ya selecciono el usuario para que esten por defectos.

Pero no lo consigo.
Mi codigo:
Código PHP:
<select multiple name="idiomaSelect[]">
    <?php do { ?>
    
    <option value="<?php echo $row_ListaIdiomas['id_idioma']; ?>"

      <?php 
      
if ( $row_ListaIdiomas['id_idioma'] == $row_idiomas['id_idioma']) { ?> selected="selected"
  <?php };  ?>   
          
         
        ><?php echo $row_ListaIdiomas['nombre_idioma']; ?></option>
    
  
 <?php } while ($row_ListaIdiomas mysql_fetch_assoc($ListaIdiomas)); ?>
</select>
El fallo:
Código PHP:
 if ( $row_ListaIdiomas['id_idioma'] == $row_idiomas['id_idioma']) { ?> selected="selected"
  <?php };  ?>
solo se queda seleccionado el primero de la lista, es como que el bucle no le afecte para que continue con la lista.

espero explicarme. Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 02/06/2013, 01:23
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

Prueba así:

Código PHP:
Ver original
  1. <select>
  2. <?php
  3. echo "<option value='{$row_ListaIdiomas['id_idioma']}' selected='selected'>Seleccione...</option>";
  4. while ( $row_ListaIdiomas = mysql_fetch_assoc ( $ListaIdiomas ) ) {
  5.     $selected = '';
  6.     if ($row_ListaIdiomas ['id_idioma'] == $row_idiomas ['id_idioma'])
  7.         $selected = "selected = 'selected'";
  8.     echo "<option value='{$row_ListaIdiomas['id_idioma']}' $selected>{$row_ListaIdiomas['id_idioma']}</option>";
  9. }//while
  10. ?>
  11. </select>
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 02/06/2013, 04:44
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Exclamación Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

no funciona. no te falta poner al principio el do { ?¿?
he probado cambiando cosas pero no lo consigo...no me sale por defecto los idiomas seleccionados de la tabla idiomas. gracias por ayudarme!
  #4 (permalink)  
Antiguo 02/06/2013, 04:46
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Exclamación Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

ademas falta poner lo de seleccion multiple sino como aparece las multiples selecciones...
Código PHP:
<select multiple name="idiomaSelect[]" 
  #5 (permalink)  
Antiguo 03/06/2013, 07:46
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

Revisa este codigo yo lo tengo implementado aqui...

Código PHP:
Ver original
  1. <select id="obj_provincia" class="cajatexto" onchange="mostrarMunicipios()">
  2. <option value="">Seleccionar...</option>
  3. <?php
  4. require('../../includes/conexion.php');
  5.  
  6. $rs_titular=mysql_query("SELECT * FROM tb_titulares");
  7. $row_titular = mysql_fetch_assoc($rs_titular);
  8.  
  9. $idtitular = $_POST['idtitular'];
  10.  
  11. $rs_prov=mysql_query("SELECT * FROM nm_provincias");
  12. while($row_prov = mysql_fetch_assoc($rs_prov)){
  13. ?>                        
  14. <option value="<?php echo $row_prov['id']; ?>"<?php if (!(strcmp($row_prov['id'], $row_titular['dir_provincia']))) {echo "selected=\"selected\"";} ?>><?php echo $row_prov['provincia']; ?></option>
  15. <?php } ?>                          
  16. </select>
  #6 (permalink)  
Antiguo 04/06/2013, 03:30
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

ok gracias! lo miro esta tarde y te digo si me ha funcionado
  #7 (permalink)  
Antiguo 04/06/2013, 10:26
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

Hola de nuevo...lo he estado probando y nada...no funciona. Me aparece correctamente la lista de idiomas. pero no funciona el selected. Ahora si, cuando señalo varios opciones de la lista me envia correctamente los datos. Pero sigue sin funcionar que salgan los idiomas que el usuario tiene guardado en la tabla idiomas.

Pongo el código para que veas como lo tengo.


Código PHP:

 <?php 
mysql_select_db
($database_cnxGestor$cnxGestor);
$query_ListaIdiomas "SELECT * FROM lista_idiomas ORDER BY id_idioma ASC";
$ListaIdiomas mysql_query($query_ListaIdiomas$cnxGestor) or die(mysql_error());
$row_ListaIdiomas mysql_fetch_assoc($ListaIdiomas);
$totalRows_ListaIdiomas mysql_num_rows($ListaIdiomas);

mysql_select_db($database_cnxGestor$cnxGestor);
$query_idiomas "SELECT * FROM idiomas";
$idiomas mysql_query($query_idiomas$cnxGestor) or die(mysql_error());
$row_idiomas mysql_fetch_assoc($idiomas);
$totalRows_idiomas mysql_num_rows($idiomas);
 
?>

  <select multiple name="idiomaSelect[]">
  
  
    <?php do { ?>
    
    <option value="<?php echo $row_ListaIdiomas['id_idioma']; ?>"
    
///////////////AQUI ES DONDE FALLA////////////////////////
<?php if (!(strcmp($row_ListaIdiomas['id_idioma'], $row_Idiomas['id_idioma']))) { echo "selected=\"selected\"";} ?>
/////////////////////////////////////////////////////////          
         
        ><?php echo $row_ListaIdiomas['nombre_idioma']; ?></option>
    
  
 <?php } while ($row_ListaIdiomas mysql_fetch_assoc($ListaIdiomas)); ?>
</select>
  #8 (permalink)  
Antiguo 05/06/2013, 10:25
Avatar de wizanchez  
Fecha de Ingreso: junio-2013
Ubicación: bogota
Mensajes: 120
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: lista de seleccion multiple dinamica con opcion selected="selected

seria algo asi:
Código PHP:
Ver original
  1. <?PHp  
  2. mysql_select_db($database_cnxGestor, $cnxGestor);
  3.  
  4. $query_ListaIdiomas     = "SELECT * FROM lista_idiomas ORDER BY id_idioma ASC";
  5. $ListaIdiomas           = mysql_query($query_ListaIdiomas, $cnxGestor) or die(mysql_error());
  6. $row_ListaIdiomas       = mysql_fetch_assoc($ListaIdiomas);
  7. $totalRows_ListaIdiomas = mysql_num_rows($ListaIdiomas);
  8.  
  9.  ?>
  10.  
  11.   <select multiple name="idiomaSelect[]">
  12.   <?PHp
  13. while ($fila = mysql_fetch_array($ListaIdiomas, MYSQL_ASSOC)) {
  14.    
  15.     $v_result   =consultar_idioma($fila["id_idioma"]);
  16.  
  17.     $v_select   =$v_result===false?' selected="selected" ':'';
  18.  
  19.   ?> <option value="<?php echo $fila['id_idioma']; ?>" <?PHp echo $v_select;?> ><?php echo $fila['nombre_idioma']; ?></option><?Php
  20. }
  21.  
  22.   ?>
  23. </select>
  24. <?PHp
  25.  
  26.  
  27. function consultar_idioma($id_idioma)
  28.     {
  29.  
  30.     global  $database_cnxGestor, $cnxGestor;
  31.  
  32.         mysql_select_db($database_cnxGestor, $cnxGestor);
  33.         $query_idiomas = "SELECT
  34.                                 *
  35.                             FROM
  36.                                 idiomas
  37.                             where
  38.                                 id_idioma='".$id_idioma."'";
  39.         $idiomas        = mysql_query($query_idiomas, $cnxGestor) or die(mysql_error());
  40.          
  41.  
  42.         $totalRows_idiomas = mysql_num_rows($idiomas);
  43.  
  44.         return      $totalRows_idiomas==0?false;true;
  45.     }
  46.  
  47. ?>

- lo que vi es que jamas estas preguntando si el idioma esta en la lista de idiomas.
-te arregle un poco el codigo
-tambien podes hacerlo en php con un in_array(), todo depende de las probabilidades de usuario,

Etiquetas: dinamica, lista, mysql, opcion, seleccion, select, tabla
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 22:08.