[AJAX] [XAJAX] No response processor is available..mais pourquoi est-il aussi méchant ?!
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:
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:
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:
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:
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:
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.