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 :

Caractères étranges dans le résultat d'une requête AJAX [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut Caractères étranges dans le résultat d'une requête AJAX
    Bonsoir,

    J'effectue une requête AJAX mais j'obtiens, en renvoyant la réponse en json puis en l'intégrant en JQuery, des caractères étranges comme des "" et autres, voici un copié/collé du code HTML sortit par firebug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li>Cuisine&lt;\/li&gt;"</li>
    là où je précise, je m'attends à recevoir: Si je fais un echo du résultat à renvoyer, dans mon controller (voir le echo commenté juste avant le retour de ma Response), alors j'obtiens un résultat en double, mais dont l'un est "propre" (celui provoqué par le "echo").

    Aussi, j'attends vivement vos critiques sur la conception de ma requête (car je trouve ma manière de faire très sale: appel du controleur => appelle des 3 entités => foreaech sur chacune d'elles et un gros echo finale... Moyen non ??)

    Voici le code:

    Le 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
    26
    27
    28
    29
    30
    public function rechercherAction()
    	{
    		$request = $this->get('request');
    		if ($request->isXmlHttpRequest())
    		{
    			$keyword = $request->request->get('keyword');
     
    			$em = $this->get('doctrine')->getEntityManager();
     
    			$rayons = $em->getRepository('SiteMainBundle:Rayon')->getSearchResult($keyword);
    			$categories = $em->getRepository('SiteMainBundle:Categorie')->getSearchResult($keyword);
    			$produits = $em->getRepository('SiteMainBundle:Produit')->getSearchResult($keyword);
     
    			$outpout = null;
    			foreach ($rayons as $rayon)
    			{
    				$outpout .= '<li>' . $rayon->getNom() . '</li>';
    			}
    			foreach ($categories as $categorie)
    			{
    				$outpout .= '<li>' . $categorie->getNom() . '</li>';
    			}
    			foreach ($produits as $produit)
    			{
    				$outpout .= '<li>' . $produit->getNom() . '</li>';
    			}
    			//echo $outpout;
    		}
    		return (new Response(json_encode($outpout)));
    	}
    Le JQuery:
    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
    function getSearchSugests(keyword)
    {
    	if (keyword.length > 1 && keyword.length < 30)
    	{
    		var DATA = "keyword="+keyword;
    		var URL = $('#search_bar').attr('href');
    		$.ajax
    		({
    			type: "POST",
    			url: URL,
    			data: DATA,
    			success: function(res)
    			{
    				$('#sugestResults').html(res);
    			}
    		});
    	}
    	return (false);
    }
    EDIT:

    Je n'ai plus de problème en ayant enlevé 'json_encode()' dans ma Response,

    J'aurais préféré construire ma réponse dans un fichier twig, pour ainsi par exemple utiliser la fonction path(), mais je ne vois pas comment faire.
    Ma div de suggestions (dans laquelle je vais afficher mes résultats) se trouvant dans mon fichier de layout (lui même étant à l'origine de l'appel de la requête AJAX), je ne peux quand même pas l'appeler en réponse de mon controleur...?

    Quelle méthode adopter ?

    A la relecture je vois que j'ai écris pas mal de choses, si ce n'est pas clair n'hésitez pas à me demander de synthétiser ce post !

    Merci beaucoup je suis un peu perdu dans ma conception !!

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Salut.

    Dans ton controller tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new Response($this->renderView('Bundle::fichier.html.twig',array()));
    Avec dans le array() des paramètres que tu peux passer pour ton fichier Twig. Ca te renverra donc simplement le contenu HTML.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/10/2010, 07h15
  2. Liens hypertexte dans le résultat d'une requête
    Par tomtalf dans le forum VBA Access
    Réponses: 6
    Dernier message: 10/10/2008, 15h19
  3. Réponses: 1
    Dernier message: 22/08/2008, 22h38
  4. générer des n° de lignes dans le résultat d'une requête
    Par karimspace dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/09/2007, 20h33
  5. [SQL] Recherche dans le résultat d'une requête
    Par Ekik dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/03/2007, 10h32

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