[Php-avanzado] Consulta por Select
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Jue Jul 19 21:33:13 ART 2012
David,
la respuesta vendría a ser no, sí y no te conviene.
No: un value de un elemento de form solo tiene un solo valor (y no hay
javascript que te salve para que un valor se convierta en dos valores)
Sí: porque podés armar una regla para tener un separador y del otro
lado parsear el único valor que podés enviar para obtener los dos
valores. Por ejemplo:
<select name="miSelect">
<option value="10|Muy bien">Muy bien </option>
<option value="5|Regula">Regular </option>
<option value="0|Muy mal">Muy mal </option>
</select>
Se envía un solo valor, pero luego de analizarlo, tenés los dos
valores.
No te conviene: si armaste el select leyendo de una tabla de base de
datos, basta con pasarte el ID para que con un select recuperes el
valor. No tengas miedo a hacer consultas!!
Si esto no se lee de una tabla, es posible que hayas normalizado mal y
no la hayas encontrado (por ejemplo creyendo que esto no era un dato que
el sistema tenia que "mostrar" o "gestionar".
Si por algún motivo extraño estos datos no están en una tabla, entonces
podés definir un array en un archivo de configuración con los valores,
generar el <SELECT> con un foreach, y del otro lado con el ID del vector
obtener el texto que ve el usuario.
Todo esto es mejor que otras soluciones, porque la solución "sí" parece
buena, pero te obliga a tener que revisar todos los datos para que no
esté el separador, porque si no perdés los valores; o si son fijos y
tenés que hacer un cambio tenés que cambiar también la forma de
recogerlos en el script de destino; o si los datos van directamente a
guardarse alguien que se de cuenta puede enviarte "0|Muy bien" con lo
que te genera una inconsistencia de datos... y una inconsistencia de
datos es culpa del programador.
Tal vez si nos das el ejemplo concreto que te plantea este problema,
podemos ver soluciones más puntuales al problema.
Saludos!
El jue, 19-07-2012 a las 11:25 -0300, David Barraud escribió:
> Hola Leo, tengo una consulta con respecto al select
>
>
> Supongamos que tengo el siguiente select
> <select name="miSelect">
> <option value="10">Muy bien </option>
> <option value="5">Regular </option>
> <option value="0">Muy mal </option>
> </select>
>
>
> ¿Hay alguna manera de enviar el dato del texto además del value? si
> quiero enviar por ejemplo el número "10" y el texto "Muy bien"
> seleccionando el primer valor.
> Se pueden enviar los 2 sin recurrir a Javasript?
> Muchas gracias
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Blog: http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado