103 votes

finalité initiale.

Je suis curieux de savoir le but, à l'origine de l' <input type="hidden"> balise.

Aujourd'hui, il est souvent utilisé conjointement avec le JavaScript pour stocker les variables qui sont envoyées au serveur et des choses comme ça.

Par conséquent, l' <input type="hidden"> existaient avant le JavaScript, donc, ce qui était son objectif initial? Je peux seulement imaginer l'envoi d'une valeur à partir du serveur vers le client (inchangé) envoyé à maintenir une sorte d'un état. Ou puis-je obtenir quelque chose de mal dans l'histoire de l'informatique et de l' <input type="hidden"> a toujours été censé être utilisé conjointement avec le JavaScript?

Si possible, veuillez également donner des références dans vos réponses.

108voto

BoltClock Points 249668

Je peux seulement imaginer l'envoi d'une valeur à partir du serveur vers le client (inchangé) envoyé à maintenir une sorte d'un état.

Précisément. En fait, il est encore utilisé à cette fin aujourd'hui parce HTTP tel que nous le connaissons aujourd'hui, est encore, au moins fondamentalement, un protocole sans état.

Ce cas d'utilisation a effectivement été décrite pour la première en HTML 3.2 (je suis surpris HTML 2.0 ne comprend pas une telle description):

type=hidden
Ces champs ne doivent pas être rendus et de fournir un moyen pour les serveurs pour stocker des informations d'état avec un formulaire. Ce sera transmise au serveur lorsque le formulaire est soumis, à l'aide de la paire nom/valeur définie par les attributs correspondants. C'est un travail autour de l'apatridie de HTTP. Une autre approche consiste à utiliser le protocole HTTP "Cookies".

<input type=hidden name=customerid value="c2415-345-8563">

Alors, il vaut la peine de mentionner que d'HTML 3.2, est devenu une Recommandation du W3C seulement après le JavaScript de la version initiale, il est sûr de supposer que les champs cachés ont à peu près toujours servi le même but.

10voto

Mr. Alien Points 60232

Je vais donner un exemple simple du monde réel côté serveur ici, par exemple, si les enregistrements sont en boucle et que chaque enregistrement a un formulaire avec un bouton de suppression et que vous devez supprimer un enregistrement spécifique, voici le champ hidden en action, sinon vous n'obtiendrez pas la référence de l'enregistrement à supprimer dans ce cas, ce sera id

Par exemple

 <?php
    if(isset($_POST['delete_action'])) {
        mysqli_query($connection, "DELETE FROM table_name 
                                   WHERE record_id = ".$_POST['row_to_be_deleted']);
                                   //Here is where hidden field value is used
    }

    while(condition) {
?>
    <span><?php echo 'Looped Record Name'; ?>
    <form method="post">
        <input type="hidden" name="row_to_be_deleted" value="<?php echo $record_id; ?>" />
        <input type="submit" name="delete_action" />
    </form>
<?php
    }
?>
 

8voto

Chuck Norris Points 8240

En bref, le but initial était de faire un champ qui va être soumis avec le formulaire de soumission du. Parfois, il y avait besoin de stocker de l'information dans le champ caché(par exemple, l'id d'utilisateur) et le soumettre avec le formulaire de soumission du.

De HTML du 22 septembre 1995 spécification

Un élément INPUT `TYPE=HIDDEN' représente un champ caché.L'utilisateur n'a pas d'interaction avec ce champ; au lieu de cela, la VALEUR de l'attribut spécifie la valeur du champ. Le NOM et les attributs de VALEUR sont nécessaire.

6voto

c.P.u1 Points 5174

Les valeurs des éléments de formulaire, y compris type = 'hidden', sont soumises au serveur lors de la publication du formulaire. type d'entrée = "caché" les valeurs ne sont pas visibles dans la page. La gestion des ID d’utilisateur dans les champs cachés, par exemple, est l’une des nombreuses utilisations.

SO utilise un champ caché pour le clic upvote.

 <input value="16293741" name="postId" type="hidden">
 

En utilisant cette valeur, le script côté serveur peut stocker le vote positif.

5voto

Ganesh Bora Points 646

fondamentalement, les champs cachés seront plus utiles et les avantages à utiliser avec multi étape du formulaire. nous pouvons utiliser les champs cachés pour passer d'une étape à l'étape suivante à l'aide de caché et de le garder transfert jusqu'à la fin de l'étape.

  1. Les jetons CSRF.

Cross-site request forgery (http://en.wikipedia.org/wiki/Cro...), est un site de la vulnérabilité. Nécessitant un secret, spécifiques à l'utilisateur de jeton dans toutes les soumissions de formulaire permettra d'éviter les attaques de type CSRF depuis l'attaque de sites ne peuvent pas deviner ce que le bon jeton est et de toute forme de présentations qu'ils effectuent sur le nom de l'utilisateur échoue toujours.

  1. Enregistrer l'état dans des formulaires multi-pages.

Si vous avez besoin de stocker ce que l'étape dans un multi-page de formulaire que l'utilisateur est actuellement sur, utilisez les champs de saisie. L'utilisateur n'a pas besoin de voir cette information, afin de le cacher dans un champ caché.

Règle générale: Utiliser le champ pour stocker quoi que ce soit que l'utilisateur n'a pas besoin de voir, mais que vous souhaitez envoyer vers le serveur sur le formulaire de soumission.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X