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.
je suis aller voir les fichiers de log d'apache et de MySQL
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.
dans error.log, voici la seul ligne générée par l'éxécution de mon script :
dans access.log j'ai :
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
et dans le log de mysql, rien de plus depuis que le serveur est démarré.
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 -
je rajout le log de XAJAX :
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 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
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.
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>
Partager