Bonjour à tous.
J'essaie de faire fonctionner le logiciel tutoriel trouvé sur le forum en Xajax pour moi comprendre son fonctionnement, malheureusement je suis face à une erreur que je n'arrive pas à solutionner.
Vu les énormes possibilités offertes par xAjax, quelqu'un peut-il m'aider?


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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <head>
                <title>Page xajax</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
		  <?php $xajax->printJavascript("./xajax_js"); /* Fonction qui affiche le javascript*/  ?>
 
        </head>
 
 
<body>
  <div id="block"></div>
 
 
<?php
 // information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
 
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
   $select = 'SELECT categorie FROM categories ORDER BY `categorie';
   $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
 
//  début de la liste 
 
echo "<form action ='EssaiMilleTrois.php' method='post'>
<table ><tr><td> choisissez une categorie 
      <select id='liste_cat' name='categorie' > "; 
 //  }     
    while ($row=mysql_fetch_array($result)) 
	{
	echo"<option> $row[0]</option>";
}
  echo"</select></td></tr></table></form>"; 
 
 echo "<form action ='EssaiMilleTrois.php' method='post'>
<table ><tr><td> choisissez une sous-catégorie 
      <select id='liste_sous_cat' name='sous_categorie' > "; 
 
  echo"</select></td></tr></table></form>"; 
?> 
 
</body>
</html>
<?php
 
require_once('./xajax_core/xajax.inc.php');
function SelectSouscat($catid)
{
$options="";
// creer 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,titre FROM souscategories WHERE id_cat_mere= ".$catid."";
$req=mysql_query($sql);
while($souscat=mysql_fetch_array($req))
{
//on place toutes les sous-catégories dans des options valables pour la liste SELECT
 
 $options =".$souscat['titre'].";
}
//L'ajax remplacera le innerHTML(html interieur) de la liste_souscat pour y mettre $options
$objResponse->addAssign("liste_souscat","innerHTML",$options);
// envoie la réponse en XML
return $objetResponse->getXML();
//nous allons instancier un nouvel objet xajax
$xajax=new xajax();
// remarquez que l'on peut passer en mode debug en decommentant la ligne suivante
//$xajax->dabugOn();
// Faire enregistrer la fonction que nous venons de créer
$xajax->registerFunction("SelectSouscat");
//maintenant on commence à prendre en compte les demandes sur la page web avec processRequests() 
//*/ C'est une fonction qui va se charger de générer le Javascript à partir des données que l'on a fournies à xAjax.
//En fait, elle va ordonner à xAjax de générer le Javascript de notre page une fois que nous lui aurons fourni toutes les informations qui lui sont nécessaires (nom des fonctions, etc.).
$xajax->processRequests();
//Ça l'est : disons que nous avons appris là le strict minimum à mettre dans une page pour exécuter une application AJAX. À chaque fois que vous utilisez xAjax, il faut créer votre objet xajax(), et appeler les méthodes nécessaires (processRequest() et printJavascript()). Retenez bien cela, c'est indispensable !
 
onChange (xajax_SelectSouscat);
 
}
//le code ci-dessos va remplacer ce qu'il y a dans mon div (c'est ce que signifie innerHTML), dont l'id est liste_souscat, par $options 
// Assign est nécessaire pour modifier le contenu 
// l'ajax remplacera le innerHTML(html intérieur) de la liste_souscat pour y mettre:
$options $objResponse->addAssign("liste_soucat","innerHTML",$options);
// envoie la répose en XML
return $objResponse->getXML();
}
$xajax=new xajax();
//$xajax->debugOn();
$xajax->registerFunction("SelectSouscat");
$xajax->processRequests();
<?php
return $reponse;
?>
 
?> Test de select dynamique printJavascript("../")?> Test se select dynamique
Choisissez une catégorie
<?php
$sql="SELECT id_categorie, categorie FROM categories ORDER BY categorie ASC";
$req=mysql_query($sql) or die(mysql_error());
while($cat=mysql_fetch_array($req))
{
echo".$cat['categorie'].";
}
?>
Au départ j'avais toujours une erreur à cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 $sql="SELECT id,titre FROM souscategories WHERE id_cat_mere= ".$catid."";
J'ai corrigé et plus d'erreur mais à la ligne plus bas. Mais est-ce boncar je doute pour l'erreur suivante?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 $options =".$souscat['titre'].";
Maintenant , j'ai l'erreur suivante et je ne vois vraiment pas d’erreur à cette ligne:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\EssaiMilleTroisDuplica.php on line 68
Bref je patauge et je serais reconnaissant à une âme de bonne volonté
Sincères remerciements
Claudine