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 :

Probléme pour récupérer une donnée saisie qui n'est pas dans un formulaire avec symfony [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut Probléme pour récupérer une donnée saisie qui n'est pas dans un formulaire avec symfony
    Bonjour,

    J'aimerai créer un petit formulaire avec un seul champ texte qui permet à l'utilisateur de rentrer le nom du client puis je dois récupérer cette donnée dans le contrôleur et ensuite afficher la liste de toutes les factures de ce client. Quelqu'un pourrait m'indiquer la démarche à suivre merci.

  2. #2
    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
    Tu devrais trouver de l'aide sur cette page. Si non, n'hésite pas à revenir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut
    Bjr oui j'ai regardé cette page mais ça ne m'aide pas vraiment. Je vais continuer à chercher quand même.

  4. #4
    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
    Tu as une saisie à demander à ton utilisateur, ceci implique la mise en oeuvre d'une zone de saisie et la vérification, au retour, que tu as bien le type de valeur que tu attends. Dans symfony, le mieux pour y arriver est de créer un formulaire.

    Soit tu crées un form "à la mano" comme expliqué dans les documents que je t'ai transmit. Soit tu utilises le formulaire de filtre de ta table client en désactivant les champs que tu ne souhaites pas utiliser. L'avantage du formulaire de filtre est de te fournir des méthodes (magiques) pour créer le query associé à ta réponse. L’inconvénient est (peut-être, mais peut probable) d'être une contrainte pour ton application.

    Une solution pour savoir comment utiliser le formulaire de filtre est de générer un module auto-généré (dits formulaire de backend ou d'administration à tords) et de regarder, dans le cache, le code généré.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut
    Je me retrouve plus. J'ai maintenant un probléme de route et j'arrivai à voir la donnée saisie dans l'url mais plus maintenant à cause de ce probléme de route. Je vous mets le code et vous me direz ce qu'il faut modifier.
    voilà le fichier routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    facture_client:
      url:     /facture/:raissoc
      class:   sfDoctrineRoute
      options: { model: Facture, type: object }
      param:   { module: facture, action: indexbis }
      requirements:
        rais_soc: \d+
        sf_method: [get]
    et voilà l'action.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     public function executeForm1(sfWebRequest $request)
      {
      	$this ->facture = DOctrine::getTable('facture')->getFacture();	
      }
      public function executeSubmit($request)
      {
          $this->forward404Unless($request->isMethod('post')); 
          $raissoc = $request->getParameter('raissoc');      
     
     
          $this->redirect('facture/indexbis?'.http_build_query($raissoc));
      }
    public function executeIndexbis(sfWebRequest $request)
      {
        $nom = $request->getPostParameter('raissoc');
        $this->facturesCli =Doctrine::getTable('facture')->getFactureClt($nom);     
      }
    et voila mon formulaire : form1Success.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="submit" method="post">
    <h3>Nom Client: <INPUT type=text name=raissoc></h3>
    <input type="submit" value="envoyer" />
    </form>
    j'aimerai aussi tester le nom saisi et si elle existe pas dans la base de donnée demander à l'utilisateur d'entrer un nom valide, je devrais pouvoir faire ce test dans le controleur et le renvoyer vers la page form1. Merci de m'expliquer clairement quel est mon probléme et ce que je dois modifier.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    Si raissoc est une chaîne, tu dois mettre \w+ au lieu de \d+.

    Pour le test du nom saisi, il faut que tu crée une classe formulaire et que tu utilise les validateur c'est le plus sûre comme solution. Sinon, la solution moche c'est de faire une méthode 'exist' dans la classe ClientTable qui retourne vrai si le client existe dans la base et ensuite de le contrôleur tu fait appel à cette méthode pour savoir si tu renvoi vers le formulaire avec un message d'erreur ou si tu renvoi vers la liste.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ouvrir une image .JPG qui n'est pas dans la base
    Par merocean dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 12/02/2009, 21h22
  2. Problème pour récupérer une plage de données
    Par sincenono dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/12/2008, 10h55
  3. [MySQL] Problème pour afficher une image dont le chemin est stocké dans la bdd
    Par cel.Saint-Louis dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/11/2007, 08h49
  4. Réponses: 2
    Dernier message: 14/04/2006, 18h40
  5. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49

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