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 :

formulaire comment exiger 3 lettres minimum avant de rechercher un acteur


Sujet :

Symfony PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut formulaire comment exiger 3 lettres minimum avant de rechercher un acteur
    Bonjour, sur le tuto de symfony2 j'aimerais faire en sorte que si l'on a pas taper au moins 3 lettre la recherche ne s'active pas ?

    je redonne le code
    Code php : 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
     
     
    public function rechercherAction()
    {               
        $request = $this->container->get('request');
     
        if($request->isXmlHttpRequest())
        {
            $motcle = '';
            $motcle = $request->request->get('motcle');
     
            $em = $this->container->get('doctrine')->getEntityManager();
     
            if($motcle != '')
            {
                   $qb = $em->createQueryBuilder();
     
                   $qb->select('a')
                      ->from('MyAppFilmothequeBundle:Acteur', 'a')
                      ->where("a.nom LIKE :motcle OR a.prenom LIKE :motcle")
                      ->orderBy('a.nom', 'ASC')
                      ->setParameter('motcle', '%'.$motcle.'%');
     
                   $query = $qb->getQuery();               
                   $acteurs = $query->getResult();
            }
            else {
                $acteurs = $em->getRepository('MyAppFilmothequeBundle:Acteur')->findAll();
            }
     
            return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Acteur:liste.html.twig', array(
                'acteurs' => $acteurs
                ));
        }
        else {
            return $this->listerAction();
        }
    }

    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
     
     
    {% block content %}
     
    <form id="form_recherche" action="{{ path('myapp_acteur_rechercher') }}" method="post">
        {{ form_widget(form) }}
        <input type="submit" value="Rechercher" />
    </form>
    <div class="loading"></div>
    <div id="resultats_recherche"> 
        {% include 'MyAppFilmothequeBundle:Acteur:liste.html.twig' with {'acteurs' : acteurs}  %}
    </div>
     
    <p><a href="{{ path('myapp_acteur_ajouter') }}">Ajouter un acteur</a><p>
     
    <script>
    $(".loading").hide();
    $("#form_recherche").submit(function(){ 
        $(".loading").show();
        var motcle = $("#acteurrecherche_motcle").val();
        var DATA = 'motcle=' + motcle;
        $.ajax({
            type: "POST",
            url: "{{ path('myapp_acteur_rechercher')}}",
            data: DATA,
            cache: false,
            success: function(data){
               $('#resultats_recherche').html(data);
               $(".loading").hide();
            }
        });    
        return false;
    });
    </script>
    {% endblock %}
    j'ai essayer d'ajouter ceci mais cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        if($request->isXmlHttpRequest())
        {
            $motcle = '';
            $motcle = $request->request->get('motcle');
           if(count($motcle) <3)
          {
               echo "affiche 3 lettres minimum";
         }
    ici je n'ai pas le mettre 3 lettres minimum si je tape un seul caractère

    je vous remercie pour la réponse

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est strlen

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de ta réponse

    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
     
    public function rechercheCodePostalAction() {
            $request = $this->container->get('request');
     
            if ($request->isXmlHttpRequest()) {
                $motcle = '';
                $motcle = $request->request->get('motcle');
                       if(strlen($motcle) <3)
          {
               echo "affiche 3 lettres minimum";
         }
     
                $em = $this->container->get('doctrine')->getEntityManager();
     
                if ($motcle != '') {
                    $qb = $em->createQueryBuilder();
                    $qb->select('a')
                            ->from('KodAnnuaireBundle:Lieu', 'a')
                            ->where("a.codepostal LIKE :motcle ")
                            ->orderBy('a.codepostal', 'ASC')
                            ->setParameter('motcle', '%' . $motcle . '%');
     
                    $query = $qb->getQuery();
                    $codepostals = $query->getResult();
                } else {
                    $codepostalss = $em->getRepository('KodAnnuaireBundle:Lieu')->findAll();
                }
     
                return $this->render('KodAnnuaireBundle:Recherche:CodePostal.html.twig', array(
                            'codepostals' => $codepostals,
                            'action'=>'rechecher un contact',
                        ));
            } else 
     
            {
                $lieu = new Lieu();
            $form = $this->createForm(new LieuType, $lieu);
     
                return $this->render('KodAnnuaireBundle:Recherche:RechercheCodePostal.html.twig', array(
               	    'form' => $form->createView(),
               'action'=>'rechecher un contact',));
            }
        }
    je n'ai toujours pas le message lorsque que je commence à taper une lettre.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    regarde ce que se passe avec firebug

Discussions similaires

  1. Comment gérer une lettre d'information
    Par oldos dans le forum Outils
    Réponses: 7
    Dernier message: 03/10/2006, 16h22
  2. Réponses: 11
    Dernier message: 19/06/2006, 13h51
  3. [Formulaire] comment afficher une feuille excel?
    Par helenafr dans le forum IHM
    Réponses: 6
    Dernier message: 16/06/2006, 13h26
  4. Réponses: 11
    Dernier message: 02/02/2005, 12h52
  5. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum Requêtes
    Réponses: 11
    Dernier message: 28/08/2003, 08h04

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