Foros del Web » Programando para Internet » PHP »

Pasando selects por POST

Estas en el tema de Pasando selects por POST en el foro de PHP en Foros del Web. Vereis, tengo un formulario que tiene varios SELECTS con el mismo nombre (necesario que así sea para que me funcione una función de javascript). Mi ...
  #1 (permalink)  
Antiguo 27/02/2009, 10:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 39
Antigüedad: 16 años, 9 meses
Puntos: 0
Pasando selects por POST

Vereis, tengo un formulario que tiene varios SELECTS con el mismo nombre (necesario que así sea para que me funcione una función de javascript). Mi duda es la siguiente, ¿Cómo paso por POST los selects que NO estén vacíos si se llaman igual?

Ejemplo:
<select size='1' name='lista1' onChange=Sumar()>
<option selected value=''></option>
<option value='1'>1</option>;
<option value='2'>2</option>;
<option value='3'>3</option>;
</select>

<select size='1' name='lista1' onChange=Sumar()>
<option selected value=''></option>
<option value='1'>1</option>;
<option value='2'>2</option>;
<option value='3'>3</option>;
</select>

Si selecciono en el primer select un número de la lista desplegable, que por POST me llegue sólo ese número, por ejemplo el 3.

Muchas gracias!
  #2 (permalink)  
Antiguo 27/02/2009, 10:35
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Pasando selects por POST

Ponele los nombres diferentes y los ID iguales, que el javascript trabaje con id's que para eso esta.

Suerte!
  #3 (permalink)  
Antiguo 27/02/2009, 11:57
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasando selects por POST

Los ids deben ser únicos para cada elemento, al igual que los nombres de los campos de un formulario. Debes corregir eso, o tendrás comportamientos muy inesperados a la hora de enviar el formulario. Por lo tanto, debes corregir tu función JS para que funcione como esperas con nombres o ids distintos.

  #4 (permalink)  
Antiguo 27/02/2009, 12:03
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Pasando selects por POST

Cita:
Iniciado por okram Ver Mensaje
Los ids deben ser únicos para cada elemento, al igual que los nombres de los campos de un formulario. Debes corregir eso, o tendrás comportamientos muy inesperados a la hora de enviar el formulario. Por lo tanto, debes corregir tu función JS para que funcione como esperas con nombres o ids distintos.

No quiero contradecirte, pero los ids fueron inventados solo para javascript y css. Si tenes un estilo
#texto1 {...

Podes tener mil spans con el mismo id... Lo mismo si Java Script lo requiere, si no no existiria getElement[S]ById, etc...

Pueden ser iguales tranquilamente. Lo unico que no puede ser igual son los nombres...
  #5 (permalink)  
Antiguo 27/02/2009, 12:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Pasando selects por POST

Sommy,

El ID debe de ser único, de hecho no existe getElementsById(), es o getElementById() o getElementsByTagName().

De hecho si pasas una pagina por el validador de la W3C y repites IDs te marca error. Que javascript lo permita o lo puedas hacer es un error conceptual.

Saludos
  #6 (permalink)  
Antiguo 27/02/2009, 12:22
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasando selects por POST

Perdí el mensaje 2 veces

Bueno, en resumidas cuentas, y sólo para complementar lo que GatorV ya te dijo, veamos lo que dice la W3:

http://www.w3schools.com/tags/att_standard_id.asp
Cita:
Definition and Usage

The id attribute specifies a unique id for an HTML element.
The id must be unique within the HTML document.

The id attribute can be used by a JavaScript (via the HTML DOM) or by CSS to make changes or style the element with the specified id.
  #7 (permalink)  
Antiguo 27/02/2009, 12:25
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Pasando selects por POST

mhh.... Y en el caso de los css, es un estilo para una sola cosa? Medio ironico no, ya que los CSS son para controlar varios elementos desde 1 solo archivo... Y quedaria reducido a un ID por pagina... Tenia otra concepcion del tema de los ID, sobre todo porque nunca tuve problemas en programar consas en javascript usando IDS con ningun navegador.

Pero bueno, si asi dice el protocolo asi debe ser, pido disculpas y retiro lo dicho.
  #8 (permalink)  
Antiguo 27/02/2009, 12:28
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasando selects por POST

Para los CSS, como ya lo dije, existen las clases:

Código html:
Ver original
  1. <tag class="estilo1">
Código css:
Ver original
  1. .estilo1 {
  2.     color: red;
  3. }
  4.  
  5. /* ò */
  6.  
  7. tag.estilo1 {
  8.     color: red;
  9. }

Varios elementos sí pueden tener asgnada la misma clase CSS (y un sólo elemento puede tener varias clases asignadas), pero no el mismo id.

Saludos,

EDITO: Bueno, lo dije en el mensaje que se me borró
  #9 (permalink)  
Antiguo 27/02/2009, 12:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 39
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Pasando selects por POST

Volviendo a mi tema inicial... ¿Cómo lo hago entonces sino puedo asignar ids iguales a varios selects?

Se que existe en javascript una función como la siguiente:
document.factura.lista1[i].value

la cual permite, cambiando la variable "i" rastrear por posición los elementos de mismo nombre dentro de una página.
Ej:
<input name='lista1' value ='1'>
<input name='lista1' value ='2'>

Con i=1 obtendríamos value = 1
porque ese sería el primer lista1 de toda la página. ¿No hay nada parecido en php sin tener que cambiar los names?
  #10 (permalink)  
Antiguo 27/02/2009, 12:37
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasando selects por POST

Bueno, queda claro que debes asignar nombres diferentes a tus campos para que el formulario funcione correctamente. El id de cada campo poco o nada tiene que ver con los datos que se envian con el formulario.

Si deseas corregir tu función javascript, te sugiero que te des una vuelta por ese subforo.

  #11 (permalink)  
Antiguo 27/02/2009, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Recuperar valor de una pagina php

y para no repetir temas, te recomiendo uses el icono de para mover el tema.

Saludos
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:07.