Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 10h23   #1
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Par défaut Alimenter une 2ème liste déroulante liée à la première par xAjax

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 :
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 :
 $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 :
1
2
 
 $options =".$souscat['titre'].";
Maintenant , j'ai l'erreur suivante et je ne vois vraiment pas d’erreur à cette ligne:
Citation:
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
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h11   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonjour,

Je ne connais pas quelle bibliothèque xajax mas tu as une erreur php à cette ligne
Citation:
$options $objResponse->addAssign("liste_soucat","innerHTML",$options);
D'ailleurs ce message d'erreur est du coté php mais pas javascript.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 17h29   #3
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 169
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 169
Points : 37
Points : 37
Merci Andry.aime, il 's'agit en effet de:
Code :
1
2
 
$objResponse->addAssign("liste_soucat","innerHTML",$options);
Cependant, j'ai toujours le même code d'erreur sur la ligne:
Code :
1
2
 
 $options=".$souscat['titre'].";
Parse error:
Citation:
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
Voyez-vous une erreur? Je n'ai fait que copier/coller le code entier.
Pouvez-vous m'expliquer expecting......
Claudine
Claudine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h54.


 
 
 
 
Partenaires

Hébergement Web