5568 sujets
Sémantique web et HTML
eiffel74 a écrit :
Bonjour,
Bonjour,
Voici, j'ai un formulaire dans une page qui affiche certain champ dépandant d'un choix fait plutot dans le formulaire, mais j'aimerais que mon formulaire envois que les section remplis comment faire
Buenas Dias,
Sous réserve que j’ai bien compris ta question : tu souhaite pouvoir filtrer les champs qui seront effectivement envoyés au CGI lors de la soumission du formulaire ? C’est bien ce que tu demande ?
Si c’est bien ça, alors tu peux tout simplement fixer l’attribut disabled sur les champs que tu ne souhaite pas voir transmis au moment de la soumission du formulaire.
Étapes pour vérifier toi-même que cette méthode est valide :
La référence HTML 4.1 dit :
HTML 4.1 a écrit :
17.13.1 Form submission method
The method attribute of the FORM element specifies the HTTP method used to send the form to the processing agent. This attribute may take two values:
get: With the HTTP "get" method, the form data set is appended to the URI specified by the action attribute (with a question-mark ("?") as separator) and this new URI is sent to the processing agent.
post: With the HTTP "post" method, the form data set is included in the body of the form and sent to the processing agent.
Intéressons-nous donc à ce form data set.
HTML 4.1 a écrit :
A form data set is a sequence of control-name/current-value pairs constructed from successful controls
OK. Il y a donc des contrôles qui sont successful et d’autres qui ne le sont pas. Intéressant, ça devrait nous permettre d’effectuer le filtrage demandé
Mais comment savoir si un contrôle est successful ou pas, et comment le mettre dans cet état volontairement ?
La réponse est donnée par la définition même de cet état.
HTML 4.1 a écrit :
17.13.2 Successful controls
A successful control is "valid" for submission. Every successful control has its control name paired with its current value as part of the submitted form data set. A successful control must be defined within a FORM element and must have a control name.
However:
Controls that are disabled cannot be successful.
If a form contains more than one submit button, only the activated submit button is successful.
All "on" checkboxes may be successful.
For radio buttons that share the same value of the name attribute, only the "on" radio button may be successful.
For menus, the control name is provided by a SELECT element and values are provided by OPTION elements. Only selected options may be successful. When no options are selected, the control is not successful and neither the name nor any values are submitted to the server when the form is submitted.
The current value of a file select is a list of one or more file names. Upon submission of the form, the contents of each file are submitted with the rest of the form data. The file contents are packaged according to the form's content type.
The current value of an object control is determined by the object's implementation.
Et voilà, nous l’avons notre solution Il suffit de fixer l’attribut disabled sur les champs que nous ne souhaitons pas voir transmis ; c’est à dire, que soit l’attribut devra exister dans le source (et si le source est en XHTML, il devra avoir la valeur "disabled"), soit il devra lui être donné la valeur true depuis JavaScript.
Modifié par hibou57 (30 Apr 2010 - 19:05)
Je ne pense pas avoir bien compris.
Ce que je veux faire c'est un formulaire pour abonnement à des revue.
J'ai 7 revue (donc 7 bouton radio), chaque bouton radio affiche un layer spécifique avec un questionnaire.
Si la personne fait "Envoyé", un layer caché apparait demandant si elle veux s'abonner à une autre revue, si elle clique oui, le formulaire est envoyé avec les données spécifique à cette revue et retourne au même formulaire sans changer la section commune (Nom, prenom, adresse, etc).
Le problème réside dans le fait que seule les données commune et les données spécifique à la revue sont envoyé.
Merci
Ce que je veux faire c'est un formulaire pour abonnement à des revue.
J'ai 7 revue (donc 7 bouton radio), chaque bouton radio affiche un layer spécifique avec un questionnaire.
Si la personne fait "Envoyé", un layer caché apparait demandant si elle veux s'abonner à une autre revue, si elle clique oui, le formulaire est envoyé avec les données spécifique à cette revue et retourne au même formulaire sans changer la section commune (Nom, prenom, adresse, etc).
Le problème réside dans le fait que seule les données commune et les données spécifique à la revue sont envoyé.
Merci
eiffel74 a écrit :
Je ne pense pas avoir bien compris.
Ce que je veux faire c'est un formulaire pour abonnement à des revue.
J'ai 7 revue (donc 7 bouton radio), chaque bouton radio affiche un layer spécifique avec un questionnaire.
Si la personne fait "Envoyé", un layer caché apparait demandant si elle veux s'abonner à une autre revue, si elle clique oui, le formulaire est envoyé avec les données spécifique à cette revue et retourne au même formulaire sans changer la section commune (Nom, prenom, adresse, etc).
Le problème réside dans le fait que seule les données commune et les données spécifique à la revue sont envoyé.
Merci
Heuuuu.... ben oui, c’est bien ça, tu dois n’envoyer que certains champs, et la manière de le faire t’es donnée dans la précédente réponse.
Tu dois donc également afficher ou masquer certaines parties du formulaire de manière dynamique, et ça, tu peux le faire en manipulant les propriétés CSS en JavaScript : display ou z-index (alias zIndex pour le DOM en JavaScript).
Modifié par hibou57 (30 Apr 2010 - 19:57)
eiffel74 a écrit :
Mais si je mets l'attribut à disable l'utilisateur ne pourra pas le remplir...il faudrait donc pouvoir change l'attribut en fonction de la revue choisi.
Oui.... JavaScript
Maintenant, il y a peut-être aussi d’autres solutions possibles pouvant elles aussi répondre à tes spécifications ; à toi d’en imaginer d’autres si celle-ci ne va pas pour une raison X ou Y.
Modifié par hibou57 (01 May 2010 - 01:43)