Bonjour à tous,

j'ai bsoin pour une application de remplir une liste déroulante en fonction du choix sélectionné dans une autre. tout ceci, sans recharger la page. je me suis dit logiquement que ça devais se faire en Javascript et j'en suis donc arrivé à l'AJAX. au fil de mes recherches pour apprendre le principe de l'AJAX, j'ai trouvé la livrairie PHP XAJAX qui permet de faciliter l'utilisation d'AJAX avec PHP. voila pour l'histoire.

j'ai donc installé XAJAX 0.5 et suivi quelques tutos et exemples pour arriver à mes fin. j'ai activé le mode Debug et je peu ainsi voir dans la page de debug le message suivant.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
ERROR: No response processor is available to process the response from the server.
Content-Type: text/html.
Check for error messages from the server.
je suis aller voir les fichiers de log d'apache et de MySQL

dans error.log, voici la seul ligne générée par l'éxécution de mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
[Tue Oct 13 13:23:52 2009] [error] [client 127.0.0.1] File does not exist: C:/Program Files/EasyPHP 3.0/www/favicon.ico
dans access.log j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
127.0.0.1 - - [13/Oct/2009:13:23:52 +0200] "GET /favicon.ico HTTP/1.1" 404 1139
127.0.0.1 - - [13/Oct/2009:13:23:53 +0200] "GET /DinamoProjectManager/dailytasks.php HTTP/1.1" 200 2551
127.0.0.1 - - [13/Oct/2009:13:23:54 +0200] "GET /DinamoProjectManager/style/css/layout.css HTTP/1.1" 200 1945
127.0.0.1 - - [13/Oct/2009:13:23:54 +0200] "GET /DinamoProjectManager/xajax/xajax_js/xajax_core.js HTTP/1.1" 200 39857
127.0.0.1 - - [13/Oct/2009:13:23:54 +0200] "GET /DinamoProjectManager/xajax/xajax_js/xajax_debug.js HTTP/1.1" 200 15196
127.0.0.1 - - [13/Oct/2009:13:23:55 +0200] "POST /DinamoProjectManager/dailytasks.php HTTP/1.1" 200 -
et dans le log de mysql, rien de plus depuis que le serveur est démarré.

je rajout le log de XAJAX :
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
xajax debug output
Tue Oct 13 2009 13:45:15 GMT+0200
 
DONE [1777ms]
 
Tue Oct 13 2009 13:45:15 GMT+0200
 
ERROR: No response processor is available to process the response from the server.
Content-Type: text/html.
Check for error messages from the server.
 
Tue Oct 13 2009 13:45:15 GMT+0200
 
RECEIVED [status: 200, size: 0 bytes, time: 1776ms]:
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
SENT [51 bytes]
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
SENDING REQUEST
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
CALLING: 
xjxfun: SelectTasks
URI: 
****
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
POST: xjxfun=SelectTasks
&xjxr=1255434313875
&xjxargs[]=S47
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
INITIALIZING REQUEST OBJECT
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
PREPARING REQUEST
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
PROCESSING PARAMETERS [1]
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
INITIALIZING REQUEST
 
Tue Oct 13 2009 13:45:13 GMT+0200
 
STARTING XAJAX REQUEST
et voici le code de la page où tout est géré :
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
<?php
	require_once("xajax/xajax_core/xajax.inc.php");
	include("config/config.php");
 
	function SelectTasks($catid)
	{
		$published = false;
		if($published == false)
		{
		    //variables de connexion
		}
		mysql_connect($bdd_host, $bdd_login, $bdd_password);
		mysql_select_db($bdd_name);
		$options="";
		// créé un nouvel objet permettant d'envoyer une réponse au côté client
		$objResponse = new xajaxResponse();
		// on selectionne les sous-catégorie en fonction de l'id de la catégorie mère
		$sql = "SELECT ID, libelle FROM tache WHERE fk_id_projet=".$catid." ORDER BY libelle, ID";
		$req = mysql_query($sql)or die(mysql_error());
		while ($souscat = mysql_fetch_array($req))
		{
			// on place toutes les sous-catégories dans des options valables pour la liste SELECT
			$options .= '<option value="'.$souscat['ID'].'">' . $souscat['libelle'] . '</option>';
		}
 
		// l'Ajax remplacera le innerHTML (html intérieur) de la liste_souscat pour y mettre $options
		$objResponse->assign("daily_id_tache","innerHTML",$options);
		// envoie la réponse en XML
		return $objResponse->getOutput();
 
	}
		$xajax = new xajax();
		//$xajax->debugOn();
		$xajax->register(XAJAX_FUNCTION, "SelectTasks");
		$xajax->processRequest();
 
?>
<html>
	<head>
		<title>Dinamo Project Manager : Daily Works</title>
		<link href="style/css/layout.css" rel="stylesheet" type="text/css" media="screen, handheld, tv, projection" />
		<?php $xajax->printJavascript("xajax/") ?> 
	</head>
	<body>
		<form action="dailytasks.php?a=1" method="post">
			<select onchange="xajax_SelectTasks(this.value)" name="daily_id_projet" id="daily_id_projet">
				<option value="" selected="selected">---------------------------------</option>
		<?php
                        include("config/config.php");
                        mysql_connect($bdd_host, $bdd_login, $bdd_password);
                        mysql_select_db($bdd_name);
                        $query = "SELECT * FROM client ORDER BY libelle, ID";
                        $exec = mysql_query($query)or die($query." : ".mysql_error());
                        while($res = mysql_fetch_array($exec))
                        {
                                echo '<option disabled class="daily_client" value="'.$res['ID'].'"> - '.$res['libelle'].'</option>';
                                $query1 = "SELECT * FROM projet WHERE fk_id_client=".$res['ID']." ORDER BY libelle, ID";
                                $exec1 = mysql_query($query1)or die($query1." : ".mysql_error());
                                while($res1 = mysql_fetch_array($exec1))
                                {
                                        echo '<option value="'.$res1['ID'].'">'.$res1['libelle'].'</option>';
                                }
                        }
                        mysql_close();
                ?>
			</select>
			<select name='daily_id_tache' id="daily_id_tache">
				<option value='-1'>Choisir une tache</option>
			</select>
		</form>
	</body>
</html>
c'est la premiére fois que je pratique l'AJAX et XAJAX. merci de m'avoir lu, j'espére que vous pourrez m'aider, je vous en serais très reconnaissant.