HTML: Plusieurs nom/valeur pour un élément?
J'ai récemment rencontré quelque chose comme:
-
<form method="get" action="/somewebdir/script.php"> <input type="radio" name="param0" value="foo" /> <input type="radio" name="param1" value="foo" /> <input type="radio" name="param2" value="bar" /> <input type="radio" name="param2" value="bar" checked="checked" /> </form>
J'étais curieux de savoir si il y avait un moyen pour envoyer plusieurs clés/valeurs, si le second param2 est envoyé, sans JS.
Afin que la page aboutirait à quelque chose comme:
-
http://domain/somewebdir/script.php?param2=bar¶m3=foobar
J'ai changé la valeur de "bar"
à "bar&param3=foobar"
, mais de toute évidence les caractères spéciaux (&
et =
) sera codée.
Des idées? (w/o JS)
Éléments cachés ne fonctionnera pas comme il sera toujours envoyer le paramètre, ce qui aurait un effet négatif sur d'autres choses, d'être appelé par le gestionnaire (script.php)
- Vous pouvez ajouter caché entrées avec les noms et les valeurs des autres paramètres qui sera envoyé lorsque le formulaire est soumis. Mais ce sera alors toujours possible, quel que soit le radio bouton coché.
- exactement :), en essayant de les éviter. Imaginez "script.php" est-ce vraiment un gestionnaire, dans le meilleur des cas, il serait encombrer la barre d'adresse, dans le pire des cas, cela aurait un effet sur le contenu. Dans ce cas, j'essaie de créer une simple
debug
bouton radio. Pour l'instant, je suis cases à cocher, mais pour le rendre plus clair pour les utilisateurs, j'ai voulu créer une version de débogage de la colonne, exactement le même que le précédent, bouton radio, mais avec un ajoutdebug=1
(ou quelque chose de similaire param) - Aucun moyen de le faire sans javascript. Vous pouvez également diviser le bouton radio à des groupes en 2 formes, avec la seconde forme, un
param3
d'entrée avec la valeurfoobar
, mais alors vous ne serez pas en mesure de présenter à la fois des formes avec un seul bouton. - Je savais que c'était un long shot et je connais probablement 99% de la langue, mais n'étais pas sûr si HTML5 pourrait avoir quelque chose de nouveau.
Vous devez vous connecter pour publier un commentaire.
Non, il ne peut pas être fait. Au lieu de cela, le faire à partir du côté serveur (comme dans, attendre à l'entrée, et si il arrive agir en conséquence). Si cela ne vient pas de l'utilisateur, il n'est pas saisie de l'utilisateur!
Si vous avez besoin d'une valeur spécifique pour chaque utilisateur, vous pouvez utiliser un caché d'entrée, et de la croix de vérifier avec votre bouton radio.
No, it can't be done
Vous pouvez passer d'un troisième paramètre comme un élément masqué:
Puis sur le côté serveur, vérifiez si la deuxième valeur est sur "on" (activé) avant le traitement de la troisième paramètre.
Si le script côté serveur (script.php) est hors de votre contrôle et vous êtes tenus de passer un troisième paramètre si et seulement si le second paramètre est donné, vous êtes hors de la chance sans JS.
En général, vous souhaitez utiliser un séparateur personnalisé et l'analyser sur le serveur:
Vous devez utiliser un "caché" de l'élément. Vous pouvez traiter un élément supplémentaire au besoin.
http://www.w3.org/wiki/HTML/Elements/input/hidden
tant que les noms des balises sont différents, ils seront passées que les différents éléments de l' $_GET ou $_POST tableau...