Partage
  • Partager sur Facebook
  • Partager sur Twitter

Autocomplete jquery probleme dans url

27 juillet 2017 à 11:22:26

bonjour 

j'ai utilise symfony et j'ai crée une fonction qui retourne des données sous format json :

/**
     * @Route("/admin/operation/nom/{cp}", name="nomOperateur",defaults={"cp"=1})
     * @Method({"GET"})
     */
    public function operationNomAction($cp)
    {
        $em = $this->getDoctrine()->getManager();
        $nom= $em->createQuery(
            'SELECT l
                FROM AppBundle:PERSONNE l
                WHERE l.username LIKE :cp '
        )->setParameter('cp', '%'.$cp.'%')->getResult();
        $response=new JsonResponse() ;
        return  $response->setData(['operateur'=>$nom[0]->getUsername()]) ;

    }

et je veux faire un autocomplete pour un input :

 $( function() {
        $( "#operation_form_operateur_systeme" ).autocomplete({
            source:"http://localhost:8000/admin/operation/nom/"+$( "#operation_form_operateur_systeme" ).val()
        });
    } );

normalement le résultat doit être comme la forma suivant :

mais dans firebug :

d'ou vient ce '?term' ? des solutions pour l’éliminer et merci d'avance :) 





  • Partager sur Facebook
  • Partager sur Twitter
27 juillet 2017 à 11:59:57

Salut,

il est ajouté par le plugin, donc à récupérer côté serveur avec $_GET['term'] avec PHP pur (je ne connais pas l'équivalent pour Symfony). Je ne sais pas pourquoi tu veux l'éliminer

  • Partager sur Facebook
  • Partager sur Twitter
le bienfait n'est jamais perdu
27 juillet 2017 à 12:24:11

pourquoi je veux l’éliminer ? si le terme reste j'aurai pas mais données JSON est ce que tu as vu l'erreur dans firebug ?

mes donnees sont dans http://localhost:8000/admin/operation/nom/quelquechose et non dans  ?term=quelquechose

-
Edité par TheLordOne 27 juillet 2017 à 12:28:05

  • Partager sur Facebook
  • Partager sur Twitter
27 juillet 2017 à 12:27:03

Oui l'erreur dit que l'URL n'existe pas et ce n'est pas l'effet de "term". Donc faudrait que ta route pointe vers admin/operation/nom et dans ton contrôleur tu récupères le "term" et tu fais ta requête en fonction

  • Partager sur Facebook
  • Partager sur Twitter
le bienfait n'est jamais perdu
27 juillet 2017 à 12:34:46

autre solution sans changer la route ?
  • Partager sur Facebook
  • Partager sur Twitter
27 juillet 2017 à 12:49:59

Ou essayer ça https://stackoverflow.com/questions/12370614/jquery-ui-autocomplete-with-json-from-url#answer-12370749 donc travailler avec la propriété source http://api.jqueryui.com/autocomplete/#option-source

-
Edité par WillyKouassi 27 juillet 2017 à 12:51:32

  • Partager sur Facebook
  • Partager sur Twitter
le bienfait n'est jamais perdu
29 juillet 2017 à 0:55:38

Bonjour,

J'utilise aussi régulièrement l'autocomplete pour mon site, pas besoin de ton paramètre "cp",

WillyKouassi a écrit:

Salut,

il est ajouté par le plugin, donc à récupérer côté serveur avec $_GET['term'] avec PHP pur (je ne connais pas l'équivalent pour Symfony). Je ne sais pas pourquoi tu veux l'éliminer

En effet, il suffit de supprimer le paramètre "cp"de ta route ( ta route n'a besoin d'aucun paramètre ), ensuite tu récupère ton paramètre de recherche (l'équivalent de ton "cp" actuel ) avec la commande suivante :

$request->get('term')

Qui est l'équivalent de :

$_GET['term']

N'oublie pas le paramètre Request dans ta fonction et le use correspondant



  • Partager sur Facebook
  • Partager sur Twitter