Foros del Web » Programando para Internet » PHP »

agregar selected a select multiple

Estas en el tema de agregar selected a select multiple en el foro de PHP en Foros del Web. Hola amigos, espero y me puedan ayudar con este nuevo problema que me surgio, tengo un select multiple, selecciono los valores que deseo agregar y ...
  #1 (permalink)  
Antiguo 24/02/2014, 11:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 10 meses
Puntos: 1
agregar selected a select multiple

Hola amigos, espero y me puedan ayudar con este nuevo problema que me surgio, tengo un select multiple, selecciono los valores que deseo agregar y los mando a la base de datos con el formato: Opc1, Opc2, Opc3, etc..

Entonces el problema esta en que si el registro que tiene esas opciones lo quiero modificar, obtengo el valor Opc1, Opc2, Opc3, de la base de datos, hago un explode para dividir las opciones.

El problema esta en, como le hago para que dependiendo de las opciones que traigo de la BD me agregue la opcion de selected en donde tenga el valor correspondiente??

este es mi codigo que tengo:

Código PHP:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
</head>

<body>
<?
if (!$_POST){
?>
<form action="" method="POST">
    Nombre: <input type="text" name="nombre"><br>
    Apellidos: <input type="text" name="apellidos"><br>
    Email: <input type="text" name="email"> <br>
    Cerveza: <br>
    <select multiple name="cerveza[]">
       <option value="SanMiguel">San Miguel</option>
       <option value="Mahou">Mahou</option>
       <option value="Heineken">Heineken</option>
       <option value="Carlsberg">Carlsberg</option>
       <option value="Aguila">Aguila</option>
    </select><br>
    <input type="submit" value="Enviar datos!" >
</form>
<?
}else{

   
//Recogemos los valores por POST 
   
echo "Nombre: "$_POST["nombre"];
    echo 
"<br>Apellidos: "$_POST["apellidos"];
    echo 
"<br>E-mail: "$_POST ["email"];
    
$cervezas=$_POST["cerveza"];

    
//recorremos el array de cervezas seleccionadas.

    
for ($i=0;$i<count($cervezas);$i++)
       {
       
$variable.=$cervezas[$i].", "//le damos el formato Opcion1, Opcion2, etc
       
}
       
       echo 
$variable."<br><br><br>"//este es el valor que se debe de almacenar en la BD
       
       
$cuantos explode(',',$variable);//Hacemos un explode al valor que traemos de la BD
       
$num=count($cuantos)-1;//Contamos cuantas veces hizo el explode para recorrer los valores
       
for($i=0;$i<$num;$i++){
           echo 
"valor ".$i." ".$cuantos[$i]."<br>"//Aqui mostramos los valores que traiamos de la BD
       
}

           
//Aqui mostrariamos el mismo form de arriva pero ya con las opciones de selected de acuerdo a los valores de la BD

   
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 24/02/2014, 11:20
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 10 meses
Puntos: 1146
Respuesta: agregar selected a select multiple

un ejemplo rapido seria

Código PHP:
Ver original
  1. $bd_sel1 = '1';//valor guardado en tu base para el select 1
  2. $vars_sel1 = array('opcion 1','opcion 2','opcion 3');
  3.  
  4. if(!empty($vars_sel1)){
  5.     echo '<select name="sel1">';
  6.     foreach($vars_sel1 as $key=>$item){
  7.         if($key==$bd_sel1){//comparas el valor de la base de datos con el valor de la opcion
  8.             echo "<option value='$key' selected=''>$item</option>";
  9.         }else{
  10.             echo "<option value='$key'>$item</option>";
  11.         }
  12.     }
  13.     echo '</select>';
  14. }
  #3 (permalink)  
Antiguo 24/02/2014, 11:32
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: agregar selected a select multiple

Muchas gracias pero a lo que me referia era que el valor guardado en la BD traeria mas de una opcion, ya que el select es multiple, entonces tenndria que marcar mas de una opcion
  #4 (permalink)  
Antiguo 24/02/2014, 23:19
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 10 meses
Puntos: 1146
Respuesta: agregar selected a select multiple

y el problema es?

el código que te di es para un select si necesitas mas pues agrégalos.... no es un código de un solo uso, puedes repetirlo tantas veces necesites.

Etiquetas: html, registro, select, selected, variable
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:00.