Comment afficher les saisies du formulaire en lecture seule après soumission

Petit nouveau ! | 2 Messages

04 avr. 2019, 14:05

Bonjour,
Je suis sur un projet de réalisation d'une petite application web qui permet à l'utilisateur de se connecter, puis de réaliser une commande à partir d'un formulaire, puis afficher le récapitulatif de la commande à l'étape suivante EN LECTURE SEULE !!!!

Mon problème est le suivant, je n'arrive pas à afficher en lecture seule le récapitulatif de ma commande.

Etape 1, l'utilisateur saisit le formulaire de commande en remplissant des champs qui correspondent à mon objet xxxxx.
Etape 2, l'utilisateur clique sur le bouton " Valider la demande ", et donc doit s'afficher à l'écran suivant le récapitulatif de la commande .

L'affichage n'est pas en lecture seule .
L'utilisateur a accès aux inputs.

A savoir, j'ai utilisé une inclusion de modèle dans mon twig afin de factoriser mon code et le rendre réutilisable.
Mon formulaire de commande et la page récapitulative sont basés sur le même formulaire.

Je n'arrive pas à dire à twig d'être en lecture seule dans le récapitulatif de ma commande.
J'ai essayé une tonne de choses mais malheureusement je n'y parviens pas.

Mon fichier ticket.html.twig est mon modèle de base que je réutilise dans 2 autres twig avec la fonction include.

je cherche à passer un paramètre ou une option à ma fonction include {% %} ( exemple readonly, disabled ...) afin qu'il m'affiche en lecture seule les saisies de l'utilisateur.

Donc dans mon recapCommande.html.twig, je fais un include comme ceci {% include 'ticket.html.twig' %} .

à savoir que ticket.html.twig est le twig modèle qui contient le formulaire à la fois pour la saisie de la commande mais aussi pour le récapitulatif de la commande.

Merci d'avance pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

04 avr. 2019, 14:53

Bonjour,

Je vais répondre de façon contournée à la question car je ne connais pas Twig suffisamment, mais pour moi la meilleure approche serait d'avoir un autre modèle de template qui corresponde à la lecture seule.

Et dans ce modèle, ne pas utiliser des champs input en readonly/disabled, mais plutôt mettre les infos en texte en dur.
La raison est que les utilisateurs les moins expérimentés vont vouloir rectifier les infos directement dans le champ disabled sans comprendre pourquoi ils ne pourraient pas faire la modif alors que c'est quasi-exactement la même interface que la page d'avant.

L'autre raison c'est qu'en général les champ input texte en disabled ont un contrast très faible par défaut (écriture grise sur fond gris) et donc ça pourrait gêner la relecture, et ça rend la relecture difficile pour les utilisateurs déficients visuel ou avec un écran mal calibré (ce qui arrive + souvent que l'on ne croit).
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

04 avr. 2019, 15:53

Merci @arthur pour ton retour.

Je vais continuer à investiguer, mon objectif était de ne pas dupliquer mes twigs , et utiliser la fonction include afin d'appeler le modèle et trouver une option qui me permette d'afficher les champs en lecture seule.

Encore merci pour ton aide.

S'il y a d'autres propositions je suis prenante !