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 :

module de recherche avec ajax


Sujet :

Symfony PHP

  1. #1
    Membre du Club Avatar de undercrash
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 64
    Points
    64
    Par défaut module de recherche avec ajax
    Bonsoir à tous,
    j'ai un petit soucis avec la mise en oeuvre d'un petit module de recherche.
    Je cherche à récupérer une liste de prospect dans ma bdd avec ajax.

    Mon formulaire html et mon javascript est correct et les appels ajax fonctionnent mais il y a une chose que je ne comprends pas. J'ai mis ça dans mon routing.yml (plus ou moins en fonction de ce qui est dit dans jobeet):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    prospect_search:
      url:   /search.:sf_format
      param: { module: prospect, action: search, sf_format: xml }
      requirements:
        sf_format: (?:xml)
    voici mon code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $.ajax({
                  type: "GET",
                  url: $('#formajax').attr('action'), //vaut backend_dev.php/search
                  data: { query: this.value }, //vaut ce qui est dans mon input texte
                  dataType: 'xml',
                  success: function(result){
                    //ParseXML(result);
                    alert("youpi");
                  },
                  error: function(result){
                    alert("erf");
                  }
                });
    Ce qui est étrange c'est ce "/search.:sf_format" car si je test de faire une requete à la main backend_dev.php/search?query=toto par exemple et bien symfony me dit : Action "search/index" does not exist.

    Je suis perdu donc votre aide serait la bien venue
    Il n'y aurait pas plus heureux qu'un élève qui ,comme la rivière, pourrait suivre son cours sans sortir de son lit.

  2. #2
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    A vue de nez c'est ta route qui n'est pas la bonne. Comme Symfony ne la reconnait pas, il active la route par défaut et cherche l'action 'index' du module search.

    NB : je n'ai pas encore réussi à avoir une route qui marche en utilisant la regex (?xml) dans le champ 'requirements', il y a aussi un mystère à élucider par là...

    En tout cas, pour des fonctionnalités Ajax équivalentes, j'ai finalement procédé comme suit :

    routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ajax_livre_ean13:
      url: /ajax/:ean13/livre.:sf_format
      class: sfDoctrineRoute
      param: { module: ajax, action: livreByEAN13 }
      options : { model: Livre, type: object }
      requirements:
        sf_format: xml
    dans mon action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        /**
         * @param sfRequest $request A request object
         */
        public function executeLivreByEAN13(sfWebRequest $request) {
    	$this->livre = $this->getRoute()->getObject();
        }
    où $this->livre alimente la variable $livre du template XML associé

    et comme appel javascript côté client :
    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
        $.ajax({
    	type: 'GET',
    	url: '/' + Config.urlBase + '/ajax/' + value + '/livre.xml',
    	dataType: 'xml',
    	contentType: "application/x-www-form-urlencoded",
    	data: {
    	    ean13: value
    	},
    	error : function() {
    	    VitrineRequest.onError('Erreur : pas de livre récupéré', ean13Options);
    	},
    	success : function(xml){
    	    $("#" + ean13Options.outputId).removeClass('ajaxError');
    	    VitrineRequest.checkEAN13Response(xml, ean13Options);
    	}

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2013, 13h05
  2. [AJAX] recherche automatique avec Ajax
    Par cyrilherve dans le forum AJAX
    Réponses: 1
    Dernier message: 26/08/2011, 16h26
  3. [Joomla!] création d'un module avec ajax
    Par noobyyy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 20/01/2011, 18h19
  4. Moteur de recherche avec "select multiple" dynamique AJAX
    Par enclave_51 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/07/2008, 16h21
  5. [MySQL] Module de Recherche (avec plusieurs champs)
    Par KiMbOoO dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/05/2008, 16h54

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