IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Remplissage auto d'un champ de formulaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Par défaut Remplissage auto d'un champ de formulaire
    Bonjour,

    voici ma deuxième question concernant symfony (et toujours un peu liée au plugin sfGuard).

    D'un point de vue général je me demande comment, dans un formulaire, imposer une valeur (dynamique) à un champ (en hidden, chose assez simple en html+variable php).
    J'ai essayé setDefault(s) mais visiblement ça ne prend que le texte rentré (pas d'interprétation du php).

    Dans mon cas, pour éclaircir la situation, je souhaite qu'un utilisateur puisse me donner des infos sur lui (age, etc...) dans un table 'profil'.
    Je voudrais que lorsque cet utilisateur me soumet son formulaire, dans ma table correspondante, je puisse récupérer $sf_user->getUsername() dans un champ que j'ai moi même nommé 'username' (son nom n'a peu d'importance finalement). Histoire de savoir à qui appartient le profil de qui...

    Sinon je pense aussi que je pourrai repenser mon modèle de données et lier cette table 'profil' à la table 'sf_guard_user', mais pour des raisons "extérieures" j'aimerai vraiment me passer de ça. Et ça ne résout pas mon problème dans un cas général.

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2008
    Messages : 253
    Par défaut
    J'imagine qu'il est correct de récupérer cette donnée dans ton contrôleur puis de l'injecter dans ton formulaire.

    Tu peux récupérer l'utilisateur dans action.class.php car il hérite de sfComponent qui contient une fonction pour (getUser()).

    Dans ton fichier action.class.php et dans la fonction xxxSucccess() où tu appelle ton formulaire, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->myUserName = $this->getUser()->getUsername()
    Dans ton template où tu as ton formulaire :


  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je vais être moins confiant que Fused.

    Je ne suis pas sur de comprendre ce que tu veux faire, ni au niveau de la table sfGuardUser, ni dans un formulaire ou tu voudrais "injecter" des données dans un champ hiden ????

    Dans la partie "éclaircir la situation" le début est clair, mais la fin obscure. En fait, si j'ai bien compris, tu veux que l'utilisateur crée une fiche profil et que celle-ci soit enregistré dans une table, mais pour le reste, je ne vois aucune difficultés.

    Par contre, je te conseil d'utiliser la méthode recherche sur la salle symfony, tu vas y trouver de très nombreux sujet sur la création et la modification d'un profil utilisateur. Je pense que tu devrais y trouver les réponses à tes questions.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Je ne suis pas sur de comprendre ce que tu veux faire, ni au niveau de la table sfGuardUser, ni dans un formulaire ou tu voudrais "injecter" des données dans un champ hiden ????

    Dans la partie "éclaircir la situation" le début est clair, mais la fin obscure. En fait, si j'ai bien compris, tu veux que l'utilisateur crée une fiche profil et que celle-ci soit enregistré dans une table, mais pour le reste, je ne vois aucune difficultés.

    Par contre, je te conseil d'utiliser la méthode recherche sur la salle symfony, tu vas y trouver de très nombreux sujet sur la création et la modification d'un profil utilisateur. Je pense que tu devrais y trouver les réponses à tes questions.
    Comme expliqué dans mon message au dessus, je souhaiterai remplir un champ avec la valeur d'une variable. Dans mon cas, l'username de l'utilisateur.

    Pour la fiche profil c'est bien ça ; mais en plus je voudrais que cette fiche corresponde à un utilisateur enregistré dans ma table sfGuard_user, et donc j'aimerai que son username (de la table sf_guard_user) apparaisse dans m table profil. J'aimerai également me passer de liaison entre mes tables (pas de clefs étrangères etc...).

    Pour la fonction recherche, j'en suis déjà en grand utilisateur, sinon j'aurai inondé ce forum depuis longtemps ; mais là, je n'ai pas réussi à trouver ma réponse .

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Citation Envoyé par Hellblow Voir le message
    Comme expliqué dans mon message au dessus, je souhaiterai remplir un champ avec la valeur d'une variable. Dans mon cas, l'username de l'utilisateur.
    Vu le message, si tu met, en php $a = '$MaVariable' tu vas stocker $MaVariable dans $a... pour en stocker le contenu, point n'est besoin de ' ' un $a = $MaVariable sera suffisant, dans ton exemple, cela va donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    'pseudo' => $myUserName,
    ...
    Citation Envoyé par Hellblow Voir le message
    Pour la fiche profil c'est bien ça ; mais en plus je voudrais que cette fiche corresponde à un utilisateur enregistré dans ma table sfGuard_user, et donc j'aimerai que son username (de la table sf_guard_user) apparaisse dans m table profil. J'aimerai également me passer de liaison entre mes tables (pas de clefs étrangères etc...).
    OK, donc tu veux que la personne puisse compléter son profil et avoir son nom qui s'affiche, nom qui provient de la table sfGuardUser.

    Mais je ne comprend pas comment tu espères lier les tables si tu ne veux pas de liaison...

    Citation Envoyé par Hellblow Voir le message
    Pour la fonction recherche, j'en suis déjà en grand utilisateur, sinon j'aurai inondé ce forum depuis longtemps ; mais là, je n'ai pas réussi à trouver ma réponse .
    Cherche encore (pas le temps là pour toi), et tu vas trouver des sujets qui parlent d'étendre la table sfGuardUser, ce qui me semble répondre à tous tes problèmes.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Vu le message, si tu met, en php $a = '$MaVariable' tu vas stocker $MaVariable dans $a... pour en stocker le contenu, point n'est besoin de ' ' un $a = $MaVariable sera suffisant, dans ton exemple, cela va donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    'pseudo' => $myUserName,
    ...
    En fait, dans mon exemple, je sais bien que ça ne peut pas fonctionner, mais si je retire les ' ' ; ça me mets une erreur . Symfony veut absolument que je lui donne un truc entre quotes.

    Voici l'erreur en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined variable: myUserName in xx/lib/form/doctrine/UtilisateurForm.class.php on line 28
     
    Warning: Cannot modify header information - headers already sent by (output started at xx/lib/form/doctrine/UtilisateurForm.class.php:28) in xx/lib/vendor/symfony/lib/response/sfWebResponse.class.php on line 336
    Citation Envoyé par Michel Rotta Voir le message
    OK, donc tu veux que la personne puisse compléter son profil et avoir son nom qui s'affiche, nom qui provient de la table sfGuardUser.
    Plus ou moins, par "qui s'affiche", j'entends, qui se rentre tout seul dans le champ voulu.

    Merci de ton aide

  7. #7
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 14
    Par défaut
    Bonjour,

    merci pour la réponse mais ça ne résout malheureusement pas mon problème.
    Je peux ainsi afficher le nom de mon utilisateur dans ma template (chose que j'arrivais à faire auparavant), mais je ne peux pas l'imposer en tant que valeur pour un champ de mon formulaire.

    Je souhaiterai modifier mon fichier xxForm.class.php.

    J'utilise ceci (qui ne marche pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		$this->setDefaults(array(
    			'pseudo' => '$myUserName',
    			'email' => '$sf_user->getEmailAddress();',
    		));
    ça me rentre dans ma table '$myUserName' directement, pas la valeur

    [edit : mon message ne répond pas à Michel, j'y reviens dans quelques instants]

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/06/2015, 14h16
  2. [AC-2013] remplissage auto d'un champ
    Par arnonat dans le forum Access
    Réponses: 2
    Dernier message: 13/05/2015, 11h16
  3. Remplissage auto d'un champ
    Par lefabe dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/09/2013, 15h23
  4. Réponses: 1
    Dernier message: 09/10/2009, 09h45
  5. [Débutant] Remplissage auto. d'un sous-formulaire.
    Par Cyphen dans le forum Access
    Réponses: 11
    Dernier message: 20/06/2008, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo