Foros del Web » Programando para Internet » PHP »

¿como obtener los valores de un select en php?

Estas en el tema de ¿como obtener los valores de un select en php? en el foro de PHP en Foros del Web. viene el siguiente ejemplo http://www.desarrolloweb.com/articulos/1576.php sin embargo forzosamente se tiene que seleccionar los elementos en el select destino para que los agarre en php. si ...
  #1 (permalink)  
Antiguo 06/12/2015, 19:22
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 7 meses
Puntos: 52
¿como obtener los valores de un select en php?

viene el siguiente ejemplo
http://www.desarrolloweb.com/articulos/1576.php
sin embargo forzosamente se tiene que seleccionar los elementos en el select destino para que los agarre en php.
si no se hace esto dice que no esta definido el indice, y pues lo que yo requiero es que no se tenga que seleccionar nada..
solo quiero obtener lo que esta en la lista select.
Código PHP:
Ver original
  1. $cervezas=$_POST["cerveza"];
  2.  
  3.  
  4.     for ($i=0;$i<count($cervezas);$i++)
  5.         {
  6.         echo "<br> Cerveza " . $i . ": " . $cervezas[$i];
  7.         }
  8.  
  9.    }

se va al ciclo siempre y cuando al menos uno este seleccionado, pero si ninguno esta seleccionado, el $_POST["cerveza"] aparece como indefinido. ¿alguna idea?
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 06/12/2015, 20:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: ¿como obtener los valores de un select en php?

Cita:
pero si ninguno esta seleccionado, el $_POST["cerveza"] aparece como indefinido. ¿alguna idea?
Ese comportamiento es normal, porque precisamente dichas variables $_POST existen únicamente si enviaste el formulario, en caso contrario siempre será un error.

¿Solución?

Pues valida que exista el $_POST antes de si quiera usarlo:
Código PHP:
Ver original
  1. if (isset($_POST['cerveza'])) {
  2.   var_dump($_POST['cerveza']);
  3. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/12/2015, 20:15
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 7 meses
Puntos: 52
Respuesta: ¿como obtener los valores de un select en php?

Cita:
Iniciado por pateketrueke Ver Mensaje
Ese comportamiento es normal, porque precisamente dichas variables $_POST existen únicamente si enviaste el formulario, en caso contrario siempre será un error.

¿Solución?

Pues valida que exista el $_POST antes de si quiera usarlo:
Código PHP:
Ver original
  1. if (isset($_POST['cerveza'])) {
  2.   var_dump($_POST['cerveza']);
  3. }
Gracias por responderme
solo que el problema que tengo no es ese, aun no valido con isset, esto para ver que está fallando.
aquí el problema es que el POST si existe, solo si selecciono uno o todos los items de la lista SELECT.

se que me arrojara error si la lista esta en blanco..
pero lo que no sabia es que me arroja error aunque la lista tenga items que no están seleccionados.

lo que quiero hacer es simple
tengo una lista y esa lista tiene items.
quiero obtener esos items que estan en la lista.


Lista 1
elemento 1
elemento 2
elemento 3
elemento 4
elemento 5

Lista 2
elemento 1
elemento 4
elemento 3

con un boton yo paso los datos de la lista 1 a la lista 2
y quiero obtener con php los 3 elementos de la lista 2..

pero solo funciona siempre y cuando los seleccione(eso es lo que no quiero)

de antemano gracias..!
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #4 (permalink)  
Antiguo 06/12/2015, 23:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: ¿como obtener los valores de un select en php?

Vas a tener que echar mano de JavaScript para enviar dichos valores, ya sea mediante campos ocultos o en una cadena de consulta. Para lo último, si lo haces sin AJAX, los datos llegarían por GET; con AJAX puedes enviar la cadena de consulta y realizar el envío ya sea mediante el método GET o POST.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 07/12/2015, 14:18
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 7 meses
Puntos: 52
Respuesta: ¿como obtener los valores de un select en php?

Cita:
Iniciado por Alexis88 Ver Mensaje
Vas a tener que echar mano de JavaScript para enviar dichos valores, ya sea mediante campos ocultos o en una cadena de consulta. Para lo último, si lo haces sin AJAX, los datos llegarían por GET; con AJAX puedes enviar la cadena de consulta y realizar el envío ya sea mediante el método GET o POST.

Un saludo
¿pero por que javascript?
se supone que se deberian poder obtener los datos de un arreglo html con post o get en php.

al final de cuentas estoy usando checkboxes, pero esto no es lo mas optimo.
eso es muy facil de hacer en vb.net, pero parece ser que todo es mas tedioso en web.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #6 (permalink)  
Antiguo 07/12/2015, 14:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: ¿como obtener los valores de un select en php?

Cita:
Iniciado por minombreesmm Ver Mensaje
¿pero por que javascript?
se supone que se deberian poder obtener los datos de un arreglo html con post o get en php.
El problema es que nativamente el <select> sólo enviará los elementos seleccionados, pero en tu caso no seleccionas nada y pretendes enviar toda la lista.

Eso no es soportado nativamente y por eso debes usar Javascript para copiar todos los valores de la lista y enviarlos por separado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/12/2015, 16:27
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 7 meses
Puntos: 52
Respuesta: ¿como obtener los valores de un select en php?

Cita:
Iniciado por pateketrueke Ver Mensaje
El problema es que nativamente el <select> sólo enviará los elementos seleccionados, pero en tu caso no seleccionas nada y pretendes enviar toda la lista.

Eso no es soportado nativamente y por eso debes usar Javascript para copiar todos los valores de la lista y enviarlos por separado.
Esto esta pensado para que funcione en cualquier navegador aunque sea del año del caldo, ya que la empresa esta tiene tecnologia tambien de hace 20 años y no toda se puede actualizar por x razones de la empresa.

jejes, solo espero que el javascript que use funcione en todas las versiones de exploradores, aunque el minimo S.O es xp
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #8 (permalink)  
Antiguo 07/12/2015, 23:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: ¿como obtener los valores de un select en php?

No creo que vayas a tener problemas de compatibilidad para hacer una operación relativamente fácil, pero ante la duda, verifica en esta página la compatibilidad de cada método que vayas a usar.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: select
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 13:18.