Obtuve una etiqueta de selección con algunas opciones en un formulario HTML:
(los datos se recopilarán y procesarán usando PHP)
Pruebas:
<select name="Testing">
<option value="1"> One
<option value="2"> Two
<option value="3"> Three
</select>
¿Es posible que una opción lleve varios valores, como cuando un usuario selecciona "Uno", entonces algunos otros valores relacionados con esta opción se escribirán en la base de datos?
¿Cómo debo diseñar la select
etiqueta para que cada una de las opciones pueda tener uno de un valor como este:
<select name="Testing">
<option value="1" value="2010"> One
<option value="2" value="2122"> Two
<option value="3" value="0"> Three
</select>
Respuestas:
Una forma de hacer esto, primero una matriz, segundo un objeto:
Editado (3 años después de responder) para poner ambos valores en formato JSON (usando
JSON.stringify()
) debido a una queja de que mi respuesta de prueba de concepto "podría confundir a un desarrollador novato".fuente
De hecho, me preguntaba esto hoy, y lo logré usando la función php explode, así:
Formulario HTML (en un archivo que llamé 'doublevalue.php':
Acción PHP (en un archivo que llamé doublevalue_action.php)
Como puede ver en la primera parte del código, estamos creando un cuadro de selección HTML estándar, con 2 opciones. Cada opción tiene 1 valor, que tiene un separador (en este caso, '|') para dividir los valores (en este caso, modelo y color).
En la página de acción, exploto los resultados en una matriz y luego llamo a cada uno. Como puede ver, los he separado y etiquetado para que pueda ver el efecto que esto está causando.
Espero que esto ayude a alguien :)
fuente
es posible tener varios valores en una opción de selección como se muestra a continuación.
puede obtener el valor seleccionado en el evento de cambio usando jquery como se muestra a continuación.
Puedes encontrar más detalles en este ENLACE
fuente
una opción es poner varios valores separados por comas
me gusta
y en el lado del servidor separarlos
fuente
Cuando necesito hacer esto, hago los otros valores valores de datos y luego uso js para asignarlos a una entrada oculta
fuente
Si su objetivo es escribir esta información en la base de datos, ¿por qué necesita tener un valor principal y valores 'relacionados' en el
value
atributo? ¿Por qué no enviar el valor principal a la base de datos y dejar que la naturaleza relacional de la base de datos se encargue del resto?Si necesita tener varios valores en su
OPTION
s, pruebe con un delimitador que no sea muy común:...
o agregue un objeto literal (formato JSON):
...
Realmente depende de lo que intentes hacer.
fuente
poner valores para cada opción como
en el lado del servidor en el caso de php, use funciones como explotar [matriz] = explotar ([delímetro], [valor publicado]);
el código anterior devuelve una matriz que solo tiene los números y el ':' se elimina
fuente
Hice esto usando atributos de datos. Es mucho más limpio que otros métodos que intentan explotar, etc.
HTML
JS
fuente
¿Qué pasa con los atributos de datos html? Esa es la forma más sencilla. Referencia de w3school
En tu caso
fuente
Utilice un delimitador para separar los valores.
fuente
En HTML
Para JS
O PARA PHP
fuente
No se permiten parámetros de etiqueta duplicados en HTML. Lo que podrías hacer es
VALUE="1,2010"
. Pero tendría que analizar el valor en el servidor.fuente
En lugar de almacenar las opciones en el lado del cliente, otra forma de hacerlo es almacenar las opciones como elementos de submatriz de una matriz asociativa / indexada en el lado del servidor. Los valores de la etiqueta de selección solo contendrían las claves utilizadas para eliminar la referencia de la submatriz.
Aquí hay un código de ejemplo. Esto está escrito en PHP ya que el OP mencionó PHP, pero se puede adaptar a cualquier lenguaje del lado del servidor que esté utilizando:
PHP:
fuente
Esto puede ser útil o no para otros, pero para mi caso de uso particular, solo quería que se devolvieran parámetros adicionales desde el formulario cuando se seleccionó la opción; estos parámetros tenían los mismos valores para todas las opciones, así que ... mi solución era incluir entradas ocultas en el formulario con la selección, como:
Quizás obvio ... más obvio después de verlo.
fuente
puedes usar múltiples atributos
fuente