Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser un formulaire en mode consultation uniquement

19 réponses
Avatar
Alain BARTHE
Bonjour,

J'aimerais savoir s'il existe un moyen simple pour utiliser un
formulaire HTML en mode consultation.

Dans le détail :
- j'ai décrit dans un fichier JSON (peut-être plus tard YAML) les
caractéristiques des champs des tables de ma base SQL
- pour chaque champ d'une base, je spécifie un label à afficher, le type
de champ (TEXT, TEXTAREA, RADIO, CHECKBOX, ...), quelques attributs
(SIZE, NAME,...)
- à partir de ce fichier descriptif, je génère un formulaire HTML
classique <FORM> ... </FORM>, contenant des rubriques <INPUT>,
<TEXTAREA>,...

Ca fonctionne correctement, mais on me demande maintenant d'ajouter une
rubrique permettant d'afficher uniquement les données, sans pouvoir les
modifier.

J'aurais aimé réutiliser le plus possible le code qui génère le
formulaire de saisie, pour générer un "formulaire d'affichage".

Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?

Merci d'avance.

10 réponses

1 2
Avatar
Christophe Meresse
On 4 mai, 11:35, Alain BARTHE wrote:

Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?



Utiliser les attributs "disabled"

Par exemple: <input type="text" name="thetext" disabled="disabled" />

Par exemple dans le code php en utilisant une variable
$mustbedisabled:
echo '<input type="text" name="thetext" '.
($mustbedisabled?'disabled="disabled" ':'').'/>';

(pas testé, il peut y avoir eventuellement des problèmes à regler au
niveau des simples/doubles quotes)

Christophe
Avatar
Bruno Desthuilliers
Alain BARTHE a écrit :
Bonjour,

J'aimerais savoir s'il existe un moyen simple pour utiliser un
formulaire HTML en mode consultation.



(snip)

Ca fonctionne correctement, mais on me demande maintenant d'ajouter une
rubrique permettant d'afficher uniquement les données, sans pouvoir les
modifier.

J'aurais aimé réutiliser le plus possible le code qui génère le
formulaire de saisie, pour générer un "formulaire d'affichage".

Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?



http://www.w3.org/TR/html401/interact/forms.html#adef-disabled

Attention, un script peut modifier la valeur de cet attribut, donc
prévoir éventuellement en plus:

1/ de ne pas afficher DU TOUT les submits
2/ de position l'action du form sur une url spécifique ne permettant pas
la modification
3/ toute autre forme de "ceinture&bretelle" qui te semble pertinente
dans le cadre de ton appli !-)

HTH
Avatar
Mickael Wolff
Le 04/05/2010 11:35, Alain BARTHE a écrit :
Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?



Regarde du côté des attributs readonly et disabled. Et attention aux
gotcha !

Ceci dit, désactiver les contrôles n'empêchera pas (dans l'absolu) la
soumission ou la modification des champs. Il faudra s'assurer que, côté
serveur, le traitement soit approprié.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Lecoeur Thierry
"Alain BARTHE" a écrit dans le message de news:
4bdfe8b0$0$25623$
Bonjour,

J'aimerais savoir s'il existe un moyen simple pour utiliser un formulaire
HTML en mode consultation.

Dans le détail :
- j'ai décrit dans un fichier JSON (peut-être plus tard YAML) les
caractéristiques des champs des tables de ma base SQL
- pour chaque champ d'une base, je spécifie un label à afficher, le type
de champ (TEXT, TEXTAREA, RADIO, CHECKBOX, ...), quelques attributs (SIZE,
NAME,...)
- à partir de ce fichier descriptif, je génère un formulaire HTML
classique <FORM> ... </FORM>, contenant des rubriques <INPUT>,
<TEXTAREA>,...

Ca fonctionne correctement, mais on me demande maintenant d'ajouter une
rubrique permettant d'afficher uniquement les données, sans pouvoir les
modifier.

J'aurais aimé réutiliser le plus possible le code qui génère le formulaire
de saisie, pour générer un "formulaire d'affichage".

Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit pas
possible de modifier les champs, mais juste de les afficher ?

Merci d'avance.



Bonsoir,

il existe un attribut lecture seul (readonly)
je te conseille de regarder ce site:
http://fr.selfhtml.org/html/formulaires/entree.htm

Cordialement
Thierry
Avatar
Alain BARTHE
Mickael Wolff a écrit :
Le 04/05/2010 11:35, Alain BARTHE a écrit :
Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?



Regarde du côté des attributs readonly et disabled. Et attention aux
gotcha !



Merci, je vais regarder ces atttributs, qui a priori semblent
correspondre à ce que je cherche.

Des problèmes de compatibilité (IE, Firefox, ...) sont-ils à craindre ?

Ceci dit, désactiver les contrôles n'empêchera pas (dans l'absolu) la
soumission ou la modification des champs. Il faudra s'assurer que, côté
serveur, le traitement soit approprié.

Avatar
Alain BARTHE
Christophe Meresse a écrit :
On 4 mai, 11:35, Alain BARTHE wrote:

Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?



Utiliser les attributs "disabled"

Par exemple: <input type="text" name="thetext" disabled="disabled" />

Par exemple dans le code php en utilisant une variable
$mustbedisabled:
echo '<input type="text" name="thetext" '.
($mustbedisabled?'disabled="disabled" ':'').'/>';

(pas testé, il peut y avoir eventuellement des problèmes à regler au
niveau des simples/doubles quotes)

Christophe



Merci, je vais regarder ça de plus près.
Avatar
Alain BARTHE
Bruno Desthuilliers a écrit :
Alain BARTHE a écrit :
Bonjour,

J'aimerais savoir s'il existe un moyen simple pour utiliser un
formulaire HTML en mode consultation.



(snip)
>


Tu as l'air désolé. Ce n'est pas joli, joli ?

Désolé, on m'a demandé ça hier, et je cherche à réutiliser au maximum ce
que j'ai déjà, si possible.

Sinon, je pense que je devrais régénérer un tableau, mais il faudra
prendre en compte les textarea, les radio, les checkbox, etc...
Ce sera plus lourd que juste "désactiver" un formulaire.

Ca fonctionne correctement, mais on me demande maintenant d'ajouter
une rubrique permettant d'afficher uniquement les données, sans
pouvoir les modifier.

J'aurais aimé réutiliser le plus possible le code qui génère le
formulaire de saisie, pour générer un "formulaire d'affichage".

Y a-t-il moyen de modifier au minimum un formulaire pour qu'il ne soit
pas possible de modifier les champs, mais juste de les afficher ?



http://www.w3.org/TR/html401/interact/forms.html#adef-disabled



Merci, je dois pouvoir y trouver réponse à ma question, et à d'autres
que je ne manquerai pas de me poser plus tard.

Attention, un script peut modifier la valeur de cet attribut, donc
prévoir éventuellement en plus:

1/ de ne pas afficher DU TOUT les submits
2/ de position l'action du form sur une url spécifique ne permettant pas
la modification
3/ toute autre forme de "ceinture&bretelle" qui te semble pertinente
dans le cadre de ton appli !-)

HTH
Avatar
Alain BARTHE
Lecoeur Thierry a écrit :


il existe un attribut lecture seul (readonly)
je te conseille de regarder ce site:
http://fr.selfhtml.org/html/formulaires/entree.htm

Cordialement
Thierry



Merci, je vais y jeter un coup d'oeil.
Avatar
Alain BARTHE
Merci à tous les quatre.

J'ai testé les attributs readonly et disabled, ils fonctionnent
parfaitement.
- readonly : on peut cliquer sur les zones mais pas les modifier
- disabled : on ne peut même pas cliquer sur la zone (je préfère)

J'ai pu modifier mon générateur de formulaire en ajoutant juste :

if ($mode == "consultation")
$field ["attr"]["disabled"] = "disabled";

J'aurais surement 2/3 truc à modifier encore (inhiber enregistrement et
suppression, mais c'est rien à faire).

On ne peut pas faire plus simple.
Merci encore.
Avatar
Bruno Desthuilliers
Alain BARTHE a écrit :
Bruno Desthuilliers a écrit :
Alain BARTHE a écrit :
Bonjour,

J'aimerais savoir s'il existe un moyen simple pour utiliser un
formulaire HTML en mode consultation.



(snip)
>


Tu as l'air désolé.



??? Où ça ?

Ce n'est pas joli, joli ?



"Pas idéal" éventuellement, mais je comprend d'autant mieux le besoin
(et le contexte) que j'y ai déjà été confronté, et il n'y a rien qui me
choque là-dedans.

Sinon, je pense que je devrais régénérer un tableau, mais il faudra
prendre en compte les textarea, les radio, les checkbox, etc...
Ce sera plus lourd que juste "désactiver" un formulaire.



Tout à fait.
1 2