Foros del Web » Creando para Internet » HTML »

Select (opciones multiples)

Estas en el tema de Select (opciones multiples) en el foro de HTML en Foros del Web. Hola, lo primero no se si realmente este mensaje va aqui ya que no se realmente cual puede ser el "problema". Bueno estoy modificando un ...
  #1 (permalink)  
Antiguo 28/12/2008, 18:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 105
Antigüedad: 15 años, 7 meses
Puntos: 7
Select (opciones multiples)

Hola, lo primero no se si realmente este mensaje va aqui ya que no se realmente cual puede ser el "problema".

Bueno estoy modificando un pequeño hack de foros vbulletin el cual mediante un formulario que rellenas luego lo postea en un tema.

Bien la cosa que por defecto dicho formulario trae unos campos en los que tu puedes elegir una opcion y luego muestra la que tu has elegido:

Formulario:

Código:
<tr>
  <td align="left" valign="top">Color: </td>
  <td align="left"><select name="up_color" id="up_color">
    <option value="A Color"'; if($up_color == "A Color"){$html .= " selected";} $html .= '>A Color</option>
    <option value="B/N"'; if($up_color == "B/N"){$html .= " selected";} $html .= '>B/N</option>
    <option value="A Color y B/N"'; if($up_color == "A Color y B/N"){$html .= " selected";} $html .= '>A Color y B/N</option>
  </select></td>
</tr>
Post:

Código:
<tr>
  <td align="left" class="alt2"><div class="smallfont"><strong>Color: </strong>
    <?=$up_dados['up_color']?>
  </div></td>
</tr>
Pues bien yo ahora en vez de ese formulario elegir una opcion, he querido hacer un formulario donde poder elegir multiples opciones. No se mucho de programacion pero buscando por la web y poco de aqui y un poco de alla he conseguido lo siguiente:

Formulario

Código:
<tr>
  <td align="left" valign="top">Genero</td>
  <td align="left"><select name="up_genero" id="up_genero" multiple="multiple">
    <option value="Genero 1"'; if($up_genero == "Genero 1"){$html .= " selected";} $html .= '>1</option>
    <option value="Genero 2"'; if($up_genero == "Genero 2"){$html .= " selected";} $html .= '>2</option>
    <option value="Genero 3"'; if($up_genero == "Genero 3"){$html .= " selected";} $html .= '>3</option>
  </select><em>(Genero de la serie.)</em></td>
</tr>
Post

Código:
<tr>
  <td align="left" class="alt1"><div class="smallfont"><strong>Genero: </strong>
    <?=$up_dados['up_genero']?>
  </div></td>
</tr>
Vamos todo muy simple, apoyandome en lo que ya existia y con algunas cosas que he buscado por internet no he tenido mayor dificultad.

Pues bien el formulario funciona perfectamente, puedo seleccionar 1, 2 o las 3 opciones si quiero pero cuando guardo el formulario, unicamente me guarda la ultima opcion marcada aunque todas las demas tambien lo esten.

Es cosa del codigo que he hecho? o de que puede ser?

Saludos y gracias
  #2 (permalink)  
Antiguo 29/12/2008, 09:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: Select (opciones multiples)

wolas

Lo que pasa es que un select normal al enviar los datos al servidor te envía: $_POST["up_color"]= al value seleccionado mientras que en un múltiple, es igual a un array con todos los valores.
Donde creas el insert con los datos a guardar, tienes que recorrer ese array para que te los guarde todos
  #3 (permalink)  
Antiguo 29/12/2008, 09:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 105
Antigüedad: 15 años, 7 meses
Puntos: 7
Respuesta: Select (opciones multiples)

perdona pero soy muy novato en esto y me he quedado igual :S

Podrias indicarme mas o menos que he de buscar o por donde van los tiros? para al menos asi saber que buscar y sobre que informarme.

Disculpa mi ignorancia
  #4 (permalink)  
Antiguo 29/12/2008, 09:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: Select (opciones multiples)

Hola, perdona me explico como un libro cerrado :P
En la pagina en la que tienes el select tienes un <form method="post" action="el nombre de una página" cuando le das a enviar todos los datos que hay entre las etiquetas form, van a esa página para ser tratados, y los recibe en un array $_POST.
cuando tenías un select normal esta página trataba la opción del select asi:
$_POST["up_color"] sería igual a la opcion selecionada, en cambio al tener ahora varias opciones seleccionadas sería de esta manera:
$_POST["up_color"] [0] =valor de la primera opcion seleccionada
$_POST["up_color"] [1]=valor de la segunda opcion seleccionada
.
.
$_POST["up_color"] [las que tengas] =valor de la última opcion
tienes que indicar donde guarda los datos en la base de datos (el insert into.... que tengas por ahí) que recorra todas las opciones y te las guarde donde quieras

en php se utilizan mucho los arrays, tendras que documentarte un poco sobre esto.
  #5 (permalink)  
Antiguo 29/12/2008, 10:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 105
Antigüedad: 15 años, 7 meses
Puntos: 7
Respuesta: Select (opciones multiples)

muchisimas gracias manzarinaa auqnue aun no termino de comprender muy bien como funciona, ya tengo una base sobre la que buscar e informarme.

Muchisimas gracias
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 09:11.