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'].";
}
?> |
Partager