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 :

Récuperation de la valeur d'un champ text issu d"un formulaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut Récuperation de la valeur d'un champ text issu d"un formulaire
    Bonjour a tous!!

    Voila je développe sur Symfony et je suis heurté par un problème. J'ai une page ou j'affiche les membres inscrit et j'ai ajouté une zone de texte dans laquelle on entre le début d'un nom et il doit m'afficher que les membres qui commencent par ce que j'ai saisie dans la zone de texte. Mais le problème c'est que je n'arrive pas à récupérer ce que je tape dans mon champ text de mon html.twig et l'envoyer dans mon controller pour le traitement.

    Voici mon controller:
    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
    public function rechercheInscritAction(Request $request) 
    	    {                 
    	     $recherche=$request->get('recherche');
     
             // je vérifie si elle est de type POST
     
     if($requete->getMethod() == 'POST'){
    	        $repository = $this->getDoctrine()
                               ->getEntityManager()
                               ->getRepository('ProjetbibliothequeBundle:Inscrit');
            $listeinscrit = $repository->findByNomApproximatif($requete);
     
            return $this->render('ProjetbibliothequeBundle:Inscrit:index.html.twig', array(
                'entities' => $listeinscrit,
            ));}*/
    	    }
    Voici la vu ou j'ai tout mes inscrits et ou je voudrai afficher le résultat de ma recherche:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    {% extends '::base.html.twig' %}
     
    {% block body -%}
        <h1>Inscrit list</h1>
     
        <form action="" method="post"> 
          <label for="recherche">Recherche:</label> 
          <input type="text" id="recherche" name="_recherche"  /> 
     
          <button type="submit">Rechercher</button> 
        </form> 
     
        <table class="records_list">
            <thead>
                <tr>
                    <th>Id</th>
                    <th>Username</th>
                    <th>Prenom</th>
                    <th>Faculte</th>
                    <th>Cycle</th>
                    <th>Password</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
            {% for entity in entities %}
                <tr>
                    <td><a href="{{ path('inscrit_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td>
                    <td>{{ entity.username }}</td>
                    <td>{{ entity.prenom }}</td>
                    <td>{{ entity.faculte }}</td>
                    <td>{{ entity.cycle }}</td>
                    <td>{{ entity.password }}</td>
                    <td>
                    <ul>
                        <li>
                            <a href="{{ path('inscrit_show', { 'id': entity.id }) }}">show</a>
                        </li>
                        <li>
                            <a href="{{ path('inscrit_edit', { 'id': entity.id }) }}">edit</a>
                        </li>
                    </ul>
                    </td>
                </tr>
            {% endfor %}
            </tbody>
        </table>
     
            <ul>
            <li>
                <a href="{{ path('inscrit_new') }}">
                    Create a new entry
                </a>
            </li>
        </ul>
        {% endblock %}
    Et enfin ma fonction de recherche que j'utilise et qui se situe dans mon entity repository:

    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
    18
    19
    20
    21
    22
    23
    <?php
     
    namespace Projet\bibliothequeBundle\Entity;
     
    use Doctrine\ORM\EntityRepository;
     
    /**
     * InscritRepository
     *
     * This class was generated by the Doctrine ORM. Add your own custom
     * repository methods below.
     */
    class InscritRepository extends EntityRepository
    {
     
        public function findByNomApproximatif($username) {
        $queryBuider = $this->createQueryBuilder('s');
        $queryBuider->where('s.username LIKE :username')
             ->setParameter('username', '%'.$username.'%');
     
        return $queryBuider->getQuery()->getResult();
      }
    }
    Voila si quelqu'un peut m'aider je l'en remercie d'avance .

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    HUGH ! Que la paix soit avec toi...


    tu ne vois pas comme un problème ?

    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $listeinscrit = $repository->findByNomApproximatif($requete);                           // tu envois un type requete
     
    var_dump($requete); exit;    // pour voir ce qu'il y a dans $requete
    et ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       public function findByNomApproximatif($username) {                                        // tu attends un type String

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut
    Bonjour merci pour ta réponse mais je n'arrive pas à afficher ce qu'il y a dans ma variable "$requete" avec "var_dump($requete)" donc je me demande si mon formulaire communique bien avec mon controller. Aurai-tu une idée ?

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    l'objet $requete doit être volumineux alors c'est très long.


    mais en regardant ton code, tu n'utilises pas les bases de symfony.


    dans le controlleur :
    création d'un formulaire ...Type
    isValid ?
    getData ?

    dans la vue :
    {{ form_row($form) }}


    tout ça , ça te parle ?

    http://symfony.com/fr/doc/current/book/forms.html

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut
    Oui ça me parle j'ai déjà testé d'ailleurs mais il me mettait un erreur avec cette ligne de code dans mon index.html.twig "{{ form(form) }}". Il me disait que la variable from n'était pas déclaré dans mon index.html.twig.

    Voila ce que j'avais testé dans mon controller:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    public function rechercheInscritAction(Request $request) 
    	    { 
     
    	         $inscrit = new Inscrit; 
            $form = $this->createFormBuilder($inscrit) 
                         ->add('recherche', 'text')  
                         ->add('envoyer', 'submit') 
                         ->getForm(); 
            $form->handleRequest($request); 
            if ($form->isValid()) {
                { 
                    $entityManager = $this->getDoctrine()->getEntityManager()
                               ->getRepository('ProjetbibliothequeBundle:Inscrit'); 
                               $listeinscrit = $repository->findByNomApproximatif($inscrit);
     
                    return $this->render('ProjetbibliothequeBundle:Inscrit:index.html.twig', array(
                'entities' => $listeinscrit,'form' => $form->createView()
            ));
     
                } 
            } 
            return $this->render('ProjetbibliothequeBundle:Inscrit:index.html.twig', array(
                'entities' => $listeinscrit,'form' => $form->createView()
            ));
    }

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    es-ce le bon index.html.twig ? es-tu sure du chemin ? Inscrit:index.html.twig ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     return $this->render('ProjetbibliothequeBundle:Inscrit:index.html.twig', array(
                'entities' => $listeinscrit,'form' => $form->createView()

    sinon copie colle l'erreur pour voir

Discussions similaires

  1. récuperer une valeur dans un champ text dans un rdlc
    Par Msysteme dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/04/2015, 12h01
  2. [Spring MVC] récuperation de la valeur d un champ texte
    Par iftolotfi dans le forum Spring Web
    Réponses: 2
    Dernier message: 26/05/2006, 16h44
  3. Réponses: 7
    Dernier message: 15/09/2005, 06h37
  4. pb de recuperation valeur dans un champ texte
    Par kikou33 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/06/2005, 11h43
  5. Réponses: 10
    Dernier message: 10/05/2005, 11h35

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