Bonjour tout le monde,

Je pose une nouvelle discusion sur un problema ajax que j'ai.
J'ai suivi les idées de freeseb74 sur cet article là: ici sur le post 5.

Seulement voilà, lors de la requete AJAx dans le ajax.js dont voici le code:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
function remplirSelect(dataAjax) {
 
    //alert('Vous etes dans la fonction remplirSelect');
    alert(dataAjax.id_continent.toString());
    //$.ajax({type:"POST", data:dataAjax,datatype:"json"});
    // Envoi requête AJAX
 
 
    $.ajax({
         type: "GET"
       , url: baseUrl()+"/ajax/remplir/" // controller : ajax , action : remplir
       , data :dataAjax
       , dataType: "json"
       , success: function(reponse)
       {
 
           alert('coucou');
	   // Sur Succès de la réponse AJAX
 
	   // Duplique ma réponse
   	   var optionData = reponse;
 
	    // Suppression des éléments de mes listes déroulantes
	   $("#id_continent > option").remove();
	   $("#id_pays > option").remove();
	   $("#id_ville> option").remove();
 
	   // Ajoute les options pour chaque liste déroulante en fonction de la réponse
	   // Mes Continents
	   i = 0;
	   for (key in reponse.continent) {
		$("#id_continent").append(  '<option label="'
                    					  + optionData['continent'][key]
                                 			  + '"'
                                 			  + 'value="'
							  + key
							  + '">'
							  + optionData['continent'][key]
							  + '</option>');
		i++;
		if (i == 2) {
				$("#id_continent:first").prepend( '<option label="Choisissez" value="" >-- Choississez --</option>');
				$("#id_continent option:first").attr ('selected', 'selected');
				}
		} //Eof:: for 'continent'
 
	 	// Mes Pays
	 	i = 0;
		for (key in reponse.pays) {
			$("#id_pays").append(  '<option label="'
                    					  + optionData['pays'][key]
                                 			  + '"'
                                 			  + 'value="'
							  + key
							  + '">'
							  + optionData['pays'][key]
							  + '</option>');
			i++;
			if (i == 2) {
					$("#id_pays:first").prepend( '<option label="Choisissez" value="" >-- Choississez --</option>');
					$("#id_pays option:first").attr ('selected', 'selected');
					}
		}
 
	 	// Mes Villes
	 	i = 0;
		for (key in reponse.villes) {
 		  $("#id_ville").append(  '<option label="'
                    					  + optionData['villes'][key]
                                 			  + '"'
                                 			  + 'value="'
							  + key
							  + '">'
							  + optionData['villes'][key]
							  + '</option>');
		    i++;
		    if (i == 2) {
				$("#id_ville:first").prepend( '<option label="Choisissez" value="" >-- Choississez --</option>');
				$("#id_ville option:first").attr ('selected', 'selected');
					}
		}
 
 
    	}
        ,error :function(){
            alert('Echec de la requete AJAX');
        }
 
    });
 
}
 
//Sur fin du chargement du document
 
function go(){
 
    $(document).ready( function() {
 
	// Sur changement de l'un des 'select'
	$("select").change(function(){
 
		// Je recupère la valeur des sélections en cours
	 	var Vid_continent = $("select#id_continent").val();
 
	 	var Vid_pays = $("select#id_pays").val();
	 	var Vid_ville = $("select#id_ville").val();
                //alert('Vid_continent ='+Vid_continent);
                //alert('Vid_pays ='+Vid_pays);
               // alert('Vid_ville ='+Vid_ville);
	 	// Données à passer à la requête AJAX
	 	var dataAjax = {id_continent:[Vid_continent]
	 	                , id_pays:[Vid_pays]
	 	                , id_ville:[Vid_ville]
 	         	    };
                //alert('=='+Vid_continent+'=='+Vid_pays+'=='+Vid_ville);
		// Modification des 'select'
 
		//alert(dataAjax.id_continent.toString());
                remplirSelect(dataAjax);
 
 
	});
});
 
}
l'url ne va pa vers mon controller AJAX dont voici le code:

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
44
45
46
class AjaxController extends Zend_Controller_Action
{
 
    public function init()
    {
        /* Initialize action controller here */
 
        if($this->_request->isXmlHttpRequest()){
	       $this->_helper->layout->disableLayout();
               $this->_helper->viewRenderer->setNoRender(true);
               $this->_helper->viewRenderer->setNeverRender(true);
        }
    }
 
    public function indexAction()
    {
        // action body
    }
 
    public function remplirAction()
    {
        echo "<script>alert('in controleur');</script>";
 
 
        // action body
        $params = $this->_request->getParams();
 
            // Appel de mon modèle de table
            $TVilles = new Application_Model_DbTable_Villes();
            // Extraction selon les critère de recherche des différents paramètres
            $Rows = $TVilles->selectRecherche($params);
 
 
             // Transforme mes données en tableau PHP
            $list = array();
            foreach ($Rows as $row) {
            	$list ['continent'][$row->id_continent] = $row->nom_continent;
                $list ['pays'][$row->id_pays]  = $row->nom_pays;
                $list ['villes'][$row->id_ville] = $row->nom_ville;
            }
 
            // Je renvoie ce tableau à ma vue au format JSON
            $this->_helper->json($list , array('enableJsonExprFinder' => true));
    }
 
}
Un autre point que j'ai observé suivant le code de FreeSeb74, c'est que je ne vois pas il apelle sa fonction pour lancer le javascript.

Merci a vous pour vos réponses.