J'ai une balise select avec quelques options sous forme HTML:
(les données seront collectées et traitées en PHP)
Essai:
<select name="Testing">
<option value="1"> One
<option value="2"> Two
<option value="3"> Three
</select>
Est-il possible pour une option de transporter plusieurs valeurs comme lorsqu'un utilisateur sélectionne "Un", alors quelques autres valeurs liées à cette option seront écrites dans la base de données.
Comment dois-je concevoir la select
balise pour que chacune des options puisse porter une à une valeur comme celle-ci:
<select name="Testing">
<option value="1" value="2010"> One
<option value="2" value="2122"> Two
<option value="3" value="0"> Three
</select>
Réponses:
Une façon de faire cela, d'abord un tableau, puis un objet:
Modifié (3 ans après avoir répondu) pour mettre les deux valeurs au format JSON (en utilisant
JSON.stringify()
) en raison d'une plainte selon laquelle ma réponse de preuve de concept «pourrait confondre un développeur débutant».la source
Je me posais la question aujourd'hui, et je l'ai réalisé en utilisant la fonction d'explosion de php, comme ceci:
Formulaire HTML (dans un fichier que j'ai nommé 'doublevalue.php':
Action PHP (dans un fichier que j'ai nommé doublevalue_action.php)
Comme vous pouvez le voir dans le premier morceau de code, nous créons une boîte de sélection HTML standard, avec 2 options. Chaque option a 1 valeur, qui a un séparateur (dans ce cas, «|») pour diviser les valeurs (dans ce cas, le modèle et la couleur).
Sur la page d'action, j'explose les résultats dans un tableau, puis j'appelle chacun d'eux. Comme vous pouvez le voir, je les ai séparés et étiquetés pour que vous puissiez voir l'effet que cela provoque.
J'espère que ça aidera quelqu'un :)
la source
il est possible d'avoir plusieurs valeurs dans une option de sélection comme indiqué ci-dessous.
vous pouvez obtenir la valeur sélectionnée lors de l'événement de changement en utilisant jquery comme indiqué ci-dessous.
Vous pouvez trouver plus de détails dans ce LIEN
la source
une option consiste à mettre plusieurs valeurs séparées par une virgule
comme
et côté serveur, séparez-les
la source
Lorsque j'ai besoin de faire cela, je crée les autres valeurs data-values, puis j'utilise js pour les affecter à une entrée masquée
la source
Si votre objectif est d'écrire ces informations dans la base de données, pourquoi avez-vous besoin d'une valeur principale et de valeurs «associées» dans l'
value
attribut? Pourquoi ne pas simplement envoyer la valeur principale à la base de données et laisser la nature relationnelle de la base de données s'occuper du reste.Si vous avez besoin d'avoir plusieurs valeurs dans votre
OPTION
s, essayez un délimiteur qui n'est pas très courant:...
ou ajoutez un objet littéral (format JSON):
...
Cela dépend vraiment de ce que vous essayez de faire.
la source
mettre des valeurs pour chaque option comme
côté serveur en cas de php, utilisez des fonctions comme explode [array] = explode ([delimeter], [posted value]);
le code ci-dessus renvoie un tableau ne contenant que les nombres et le ':' est supprimé
la source
J'ai fait cela en utilisant des attributs de données. Est beaucoup plus propre que les autres méthodes qui tentent d'exploser, etc.
HTML
JS
la source
Qu'en est-il des attributs de données html? C'est le moyen le plus simple. Référence de w3school
Dans ton cas
la source
Utilisez un délimiteur pour séparer les valeurs.
la source
En HTML
Pour JS
OU POUR PHP
la source
Les paramètres de balise en double ne sont pas autorisés en HTML. Ce que vous pourriez faire, c'est
VALUE="1,2010"
. Mais vous devrez analyser la valeur sur le serveur.la source
Au lieu de stocker les options côté client, une autre façon de procéder consiste à stocker les options en tant qu'éléments de sous-tableau d'un tableau associatif / indexé côté serveur. Les valeurs de la balise select contiendraient alors simplement les clés utilisées pour déréférencer le sous-tableau.
Voici un exemple de code. Ceci est écrit en PHP depuis que l'OP a mentionné PHP, mais il peut être adapté à n'importe quel langage côté serveur que vous utilisez:
PHP:
la source
Cela peut ou non être utile pour les autres, mais pour mon cas d'utilisation particulier, je voulais juste que des paramètres supplémentaires soient renvoyés du formulaire lorsque l'option a été sélectionnée - ces paramètres avaient les mêmes valeurs pour toutes les options, donc ... ma solution était d'inclure des entrées cachées dans le formulaire avec la sélection, comme:
Peut-être évident ... plus évident après l'avoir vu.
la source
vous pouvez utiliser plusieurs attributs
la source