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 :

Erreur jQuery listes déroulantes liées [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 50
    Points : 35
    Points
    35
    Par défaut Erreur jQuery listes déroulantes liées
    Bonjour,

    J'ai un petit soucis, certainement pas grand chose mais cela fait pas mal d'heures que je cherche et je ne vois pas d'ou cela peut venir...
    Je cherche à réaliser deux listes déroulantes dont le contenu de l'un dépend de ce qu'on sélectionne sur la première.

    Pour cela, j'ai mis en place un javascript sur la fonction onChange de ma liste déroulante :
    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
    function remplirSousFamille(){
    	var id_select = $('#profil_famille').val();
    	  $.ajax({
    		url: "{{ path('myapp_profil_dynamique') }}",
    		type: 'POST',
    		data: {'id': id_select},
    		dataType: 'json',
    		success: function(json){ // quand la réponse de la requete arrive
    		  $('#profil_sousFamille').html('');
    		  $.each(json, function(index, value) { // et  boucle sur la réponse contenu dans la variable passé à la function du success "json"
    		  $('#profil_sousFamille').append('<option value="'+ value.idSF +'">'+ value.nomSF +'</option>');
    		  });
    		}
    	  });
    	}
    Lorsque je clique sur cette liste, si je mets une alerte, j'obtiens bien l'id de l’élément sélectionné, par contre, et la je bloque, impossible d'arriver sur la page demander !

    Routing.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    myapp_profil_dynamique:
      pattern: /user/profil/dynamique
      defaults: { _controller: MyAppFilmothequeBundle:Profil:remplirSousFamille }
      requirements:
        _method: POST
    ProfilController.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function remplirSousFamilleAction()
    	{
    		return new Response('Hello world!');
    }
    (Je n'ai mis qu'un message pour le moment afin de vérifier son bon fonctionnement).

    Et la sans aucune explication, ca ne passe pas par mon controleur ??!


    Ou se situe donc l'erreur ?
    J'ai d'ailleurs testé d'appeler directement à la mano la page (en retirant la restriction de la méthode POST) et ca m'a bien affiché mon message.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    Essaye avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function remplirSousFamilleAction()
    {
        return new response(json_encode('Hello world !'));
    }
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function remplirSousFamille(){
        var id_select = $('#profil_famille').val();
        $.ajax({
                   url: "{{ path('myapp_profil_dynamique') }}",
                   type: 'POST',
                   data: {'id': id_select},
                   dataType: 'json',
                   success: function(json){ // quand la réponse de la requete arrive
                            $('#profil_famille').after('<p>'+json+'</p>');
                        }
         });
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Cela ne fonctionne pas, je ne sais pas du coup s'il s'agit pas d'un problème de routing ou non mais aucune requête ne part dans mon contrôleur...

    Je dois être myope, j'ai beau vérifier les paramétrages, je ne vois pas ou se situe le problème, d'autant qu'en tapant directement l'adresse dans l'url "..profil/dynamique", j'obtiens bien le résultat attendu.

    Donc cela ne peut venir que de mon JavaScript qui ne s'envoie pas comme il faut ???
    Et le JavaScript, j'ai la preuve qu'il se déclenche bien puisque j'arrive à afficher l'id de ma liste déroulante lorsque je clique dessus (si je rajoute un alert).

  4. #4
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Question bête,

    ton js tu l'as mis dans un fichier a part ou dans ta vue twig ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Directement dans ma vue Twig

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    J'ai trouvé !!

    En fait le problème se situait sur l'action de mon formulaire.

    Le javascript, quand il poste la réponse, ne semble pas tenir compte de l'adresse qu'on lui met. Il envoie vers l'adresse stipulé dans le formulaire.

    Et dans mon formulaire, je renvoyais vers une partie du controleur destinée à sauvegarder mon objet en base, et non à gérer la sous-liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    form id="form_recherche" action="{{ path('myapp_profil') }}" method="post">
    ...
    			<td><td>
    			<td>{{ form_label(form.famille) }}</td>
    			<td>{{ form_errors(form.famille) }}</td>
    			<td>{{ form_widget(form.famille,{'attr': {'onChange': 'remplirSousFamille();'}}) }}</td>
    		</tr>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function remplirSousFamille(){
    	var id_select = $('#profil_famille').val();
    	  $.ajax({
    		url: "{{ path('myapp_profil_dynamique') }}",
    En fait le Javascript ne me renvoyait pas vers "myapp_profil_dynamique"!

    Merci encore pour votre aide, je vais essayé de me débrouiller en partant de là, pour tout mettre dans la même méthode du coup...

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

Discussions similaires

  1. [AJAX] Erreur 404 listes déroulantes liées
    Par R3MIX dans le forum AJAX
    Réponses: 2
    Dernier message: 14/08/2012, 08h15
  2. Debug script listes déroulantes liées
    Par AnTiX dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/04/2005, 12h03
  3. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45
  4. listes déroulantes liées
    Par k4eve dans le forum Struts 1
    Réponses: 3
    Dernier message: 26/04/2004, 15h11
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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