[RESOLU] initialiser un champ de formulaire avec une données de le DB

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.2
#~ Nom de l'hébergeur : local
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~



Bonjour,

heureux de vous retrouver après ce pb de serveur. Merci à tous ceux qui ont oeuvré pour que l'on retrouve très vite ce forum.

Je test en local un formulaire de modification de données perso sur le site. J'ai trouvé dans la doc de formbuilder beaucoup de choses et en particulier la possibilité d'appeler une balise utilisateur avant l'affichage du formulaire et aussi la possibilité d'appeler une balise pour un champ donné.
Ce que je ne sais pas faire c'est dans la balise utilisateur, comment passer la valeur des des variables issues de la lecture de la base de données, dans les champs de formulaire.
J'ai trouver les nom de champs au format formbuilder, mais je n'ai pas trouver de syntaxe et ou de méthode qui me permette d'afficher une valeur dans un champ du formulaire.
Y a t'il quelque part une doc que je n'ai pas trouvée ou pas su chercher ?
Quel est le meilleur choix : une balise par champs ou une balise globale à exécuter avant l'affichage du formulaire ?

Merci d'avance pour vos réponses
Amicalement
Alain
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.2
#~ Nom de l'hébergeur : local
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~



Bonjour,

heureux de vous retrouver après ce pb de serveur. Merci à tous ceux qui ont oeuvré pour que l'on retrouve très vite ce forum.

Je test en local un formulaire de modification de données perso sur le site. J'ai trouvé dans la doc de formbuilder beaucoup de choses et en particulier la possibilité d'appeler une balise utilisateur avant l'affichage du formulaire et aussi la possibilité d'appeler une balise pour un champ donné.
Ce que je ne sais pas faire c'est dans la balise utilisateur, comment passer la valeur des des variables issues de la lecture de la base de données, dans les champs de formulaire.
J'ai trouver les nom de champs au format formbuilder, mais je n'ai pas trouver de syntaxe et ou de méthode qui me permette d'afficher une valeur dans un champ du formulaire.
Y a t'il quelque part une doc que je n'ai pas trouvée ou pas su chercher ?
Quel est le meilleur choix : une balise par champs ou une balise globale à exécuter avant l'affichage du formulaire ?

Merci d'avance pour vos réponses
Amicalement
Alain
#2
Bonjour à tous et bonne année 2011,

Ce petit message juste pour savoir si mes questions ont lieu d'être ici ? Si ce que je demande est impossible ou si je passe pour un blaireau en posant de telles questions ? Est-ce peut-être une question de version ?

Pour la petite histoire, j'ai contourné le problème en affichant les données sur la première partie de la page puis le formulaire en dessous.

Amicalement
Alain
#2
Bonjour à tous et bonne année 2011,

Ce petit message juste pour savoir si mes questions ont lieu d'être ici ? Si ce que je demande est impossible ou si je passe pour un blaireau en posant de telles questions ? Est-ce peut-être une question de version ?

Pour la petite histoire, j'ai contourné le problème en affichant les données sur la première partie de la page puis le formulaire en dessous.

Amicalement
Alain
#3
rien à redire concernant ton message, si je n'ai pas intervenu c'est juste que je connais pas ce module Wink

je pense que pour les autres ca doit être a peu près la même raison Smile

heureux de voir que tu t'en es sortis, ajoute [résolu] dans ce cas
#3
rien à redire concernant ton message, si je n'ai pas intervenu c'est juste que je connais pas ce module Wink

je pense que pour les autres ca doit être a peu près la même raison Smile

heureux de voir que tu t'en es sortis, ajoute [résolu] dans ce cas
#4
Bonjour,

Pour ceux qui cherchent une méthode : il faut jouer sur la modification du gabarit du formulaire (celui qui génère les <input> etc.) et, si le gabarit ne permet pas l'accès aux "<input ...>" (ce qui est parfois le cas si le code de ces balises est généré par PHP et non par Smarty), il faut utiliser le modificateur "replace" de smarty, par exemple :
Code :
{$champ_input|replace:"value=''":"value='MaValeur'"}

Enfin, dernière option : le faire en Javascript (JQuery) avec la fonction ".val()"

Sinon, je me demande si justement on ne peut pas utiliser de smarty dans les valeurs par défaut de certains types de champs ? Je crois que pour le sujet du mail c'est le cas, mais à vérifier.
#4
Bonjour,

Pour ceux qui cherchent une méthode : il faut jouer sur la modification du gabarit du formulaire (celui qui génère les <input> etc.) et, si le gabarit ne permet pas l'accès aux "<input ...>" (ce qui est parfois le cas si le code de ces balises est généré par PHP et non par Smarty), il faut utiliser le modificateur "replace" de smarty, par exemple :
Code :
{$champ_input|replace:"value=''":"value='MaValeur'"}

Enfin, dernière option : le faire en Javascript (JQuery) avec la fonction ".val()"

Sinon, je me demande si justement on ne peut pas utiliser de smarty dans les valeurs par défaut de certains types de champs ? Je crois que pour le sujet du mail c'est le cas, mais à vérifier.
#5
Merci à tous les 2 pour vos réponses; je me sentais un peu seul sur ce coup là.
Avant de clore cette discussion, je vais explorer un peu la piste d'aire libe sur le gabarit qui génère les <imput> , je vous tiens au courant de mes tx

Amicalement
Alain
#5
Merci à tous les 2 pour vos réponses; je me sentais un peu seul sur ce coup là.
Avant de clore cette discussion, je vais explorer un peu la piste d'aire libe sur le gabarit qui génère les <imput> , je vous tiens au courant de mes tx

Amicalement
Alain
#6
input, et pas imput Big Grin
#6
input, et pas imput Big Grin
#7
Bonsoir, voici où j'en suis arrivé :
J'ai trouvé où se situait la génération des "INPUT" du gabarit de soumission, j'ai pu faire des tests sur le nom du champ que je voulais initialisé. J'ai testé pal mal de solutions pour initialiser le champ sans succès. J'ai utilisé la syntaxe d'aire libe mais cela ne donne rien :

Voici le code ceorrespondant :
Code :
{else}
                {if $entry->smarty_eval == '1'}
                                    {eval var=$entry->input}
                                {else}
                                    {if $entry->name == 'Nom'}
<p>test nom ok</p>
                                         {$entry->input|replace:"value=''":"value='coucou1'"}
                                     {else}
                                         {if $entry->name == 'Prenom'}
<p>test prenom ok</p>
                                             {$entry->input|replace:"value=''":"value='coucou2'"}
                                         {else}
                                             {$entry->input}
                                          {/if}
                                      {/if}
                                 {/if}
            {/if}

J'ai volontairement laisser les jalons que j'ai utilisés pour arriver à savoir à quel endroit du code je pouvait intervenir. N'étant pas du tout familiarisé avec Smarty, je pense que je bute, peut-être, sur un problème de syntaxe. Bien sur j'ai d'abord voulu voir comment initialiser le champ avec un vocable évocateur "coucou1 et 2" mais au final j'aimerai que là je puisse y mettre une variable avec la valeur de la donnée dedans.

Merci d'avance pour votre aide.

Amicalement
Alain
#7
Bonsoir, voici où j'en suis arrivé :
J'ai trouvé où se situait la génération des "INPUT" du gabarit de soumission, j'ai pu faire des tests sur le nom du champ que je voulais initialisé. J'ai testé pal mal de solutions pour initialiser le champ sans succès. J'ai utilisé la syntaxe d'aire libe mais cela ne donne rien :

Voici le code ceorrespondant :
Code :
{else}
                {if $entry->smarty_eval == '1'}
                                    {eval var=$entry->input}
                                {else}
                                    {if $entry->name == 'Nom'}
<p>test nom ok</p>
                                         {$entry->input|replace:"value=''":"value='coucou1'"}
                                     {else}
                                         {if $entry->name == 'Prenom'}
<p>test prenom ok</p>
                                             {$entry->input|replace:"value=''":"value='coucou2'"}
                                         {else}
                                             {$entry->input}
                                          {/if}
                                      {/if}
                                 {/if}
            {/if}

J'ai volontairement laisser les jalons que j'ai utilisés pour arriver à savoir à quel endroit du code je pouvait intervenir. N'étant pas du tout familiarisé avec Smarty, je pense que je bute, peut-être, sur un problème de syntaxe. Bien sur j'ai d'abord voulu voir comment initialiser le champ avec un vocable évocateur "coucou1 et 2" mais au final j'aimerai que là je puisse y mettre une variable avec la valeur de la donnée dedans.

Merci d'avance pour votre aide.

Amicalement
Alain
#8
Bon comme le sujet ne passionne pas les foules et que j'ai contourné le pb je modifie le premier post pour clore la discussion

A bientot

Alain
#8
Bon comme le sujet ne passionne pas les foules et que j'ai contourné le pb je modifie le premier post pour clore la discussion

A bientot

Alain
#9
Désolé j'ai du zapper les alertes pour tes précédents messages... Quel est le code de <input...> que tu obtiens sans modification (replace) ?
#9
Désolé j'ai du zapper les alertes pour tes précédents messages... Quel est le code de <input...> que tu obtiens sans modification (replace) ?


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)