par
Kaimite » 25 févr. 2006, 20:42
Salut,
Tu peux déja placer des listes dans 3 divs distinctes !
ils te serviront pour indiquer à l'Ajax mettre les 3 listes.
La page HTML :
Code : Tout sélectionner
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
<title></title>
<script type="text/javascript">
<!--
if(!document.getElementById){
if(document.all)
document.getElementById=function(){
if(typeof document.all[arguments[0]]!="undefined")
return document.all[arguments[0]]
else
return null
}
else if(document.layers)
document.getElementById=function(){
if(typeof document[arguments[0]]!="undefined")
return document[arguments[0]]
else
return null
}
}
function AjaxUrl(urlFichier, divRetour, actionAjax) {
//--> CREATION DE L'OBJET AJAX
document.getElementById(divRetour).innerHTML = "<p>Traitement en cours...</p>";
if(window.XMLHttpRequest)
objetAjax = new XMLHttpRequest();
else if(window.ActiveXObject)
objetAjax = new ActiveXObject("Microsoft.XMLHTTP");
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
//--> ENVOI DE LA REQUETE
objetAjax.open("GET", urlFichier, true);
objetAjax.send(null);
//--> TRAITEMENT DU RESULTAT
objetAjax.onreadystatechange = function () {
if (objetAjax.readyState == 4) {
if (actionAjax == "HTML") {
document.getElementById(divRetour).innerHTML = objetAjax.responseText;
}
else {
eval(objetAjax.responseText);
}
}
}
}
//-->
</script>
</head>
<body>
<div id="liste1">
<select name="maListe1" onchange="urlAjax('genererliste2.php?clauseWhere=this.value', 'liste2', 'HTML')">
<option value="lavaleur">Intitule</option>
...
...
...
</select>
</div>
<div id="liste2">
<p>veuillez choisir un element de la liste 1</p>
</div>
<div id="liste3">
<p>veuillez choisir un element de la liste 2</p>
</div>
</body>
</html>
La page qui genere la liste 2 :
<?php
/* CONNEXION A LA BDD ET DIVERS */
$requete = mysql_query("SELECT id, champ FROM table WHERE clauseRecherche = '".$_GET['clauseWhere']."'");
echo "<select name=\"maListe2\" onchange=\"urlAjax('genererliste3.php?clauseWhere=this.value', 'liste3', 'HTML')\">";
while ($res = mysql_fetch_assoc($requete)) {
echo "<option value=\"".$res['id']."\">".$res['champ']."</option>";
}
echo "</select>";
/* LA LISTE 2 EST GENEREE */
/* ON SUPPRIME LA LISTE 3 SI ELLE A DEJA ETE GENEREE */
?>
<script type="text/javascript">
<!--
document.getElementById("liste3").innerHTML = "<p>Veuillez choisir un element de la liste 2</p>";
//-->
</script>
et celle qui genere la 3eme liste
<?php
/* CONNEXION A LA BDD ET DIVERS */
$requete = mysql_query("SELECT id, champ FROM table WHERE clauseRecherche = '".$_GET['clauseWhere']."'");
echo "<select name=\"maListe3\" >";
while ($res = mysql_fetch_assoc($requete)) {
echo "<option value=\"".$res['id']."\">".$res['champ']."</option>";
}
echo "</select>";
/* LA LISTE 3 EST GENEREE */
echo "Infos complémentaires ICI !";
?>
c'est rapide et pas très optimisé mais c'est pour le principe.
Si tu veux plus d'infos sur l'utilisation de l'ajax jette un oeil ici :
http://www.toutajax.info/doku.php
Salut,
Tu peux déja placer des listes dans 3 divs distinctes !
ils te serviront pour indiquer à l'Ajax mettre les 3 listes.
La page HTML :
[code]<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
<title></title>
<script type="text/javascript">
<!--
if(!document.getElementById){
if(document.all)
document.getElementById=function(){
if(typeof document.all[arguments[0]]!="undefined")
return document.all[arguments[0]]
else
return null
}
else if(document.layers)
document.getElementById=function(){
if(typeof document[arguments[0]]!="undefined")
return document[arguments[0]]
else
return null
}
}
function AjaxUrl(urlFichier, divRetour, actionAjax) {
//--> CREATION DE L'OBJET AJAX
document.getElementById(divRetour).innerHTML = "<p>Traitement en cours...</p>";
if(window.XMLHttpRequest)
objetAjax = new XMLHttpRequest();
else if(window.ActiveXObject)
objetAjax = new ActiveXObject("Microsoft.XMLHTTP");
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
//--> ENVOI DE LA REQUETE
objetAjax.open("GET", urlFichier, true);
objetAjax.send(null);
//--> TRAITEMENT DU RESULTAT
objetAjax.onreadystatechange = function () {
if (objetAjax.readyState == 4) {
if (actionAjax == "HTML") {
document.getElementById(divRetour).innerHTML = objetAjax.responseText;
}
else {
eval(objetAjax.responseText);
}
}
}
}
//-->
</script>
</head>
<body>
<div id="liste1">
<select name="maListe1" onchange="urlAjax('genererliste2.php?clauseWhere=this.value', 'liste2', 'HTML')">
<option value="lavaleur">Intitule</option>
...
...
...
</select>
</div>
<div id="liste2">
<p>veuillez choisir un element de la liste 1</p>
</div>
<div id="liste3">
<p>veuillez choisir un element de la liste 2</p>
</div>
</body>
</html>
[/code]
La page qui genere la liste 2 :
[php]
<?php
/* CONNEXION A LA BDD ET DIVERS */
$requete = mysql_query("SELECT id, champ FROM table WHERE clauseRecherche = '".$_GET['clauseWhere']."'");
echo "<select name=\"maListe2\" onchange=\"urlAjax('genererliste3.php?clauseWhere=this.value', 'liste3', 'HTML')\">";
while ($res = mysql_fetch_assoc($requete)) {
echo "<option value=\"".$res['id']."\">".$res['champ']."</option>";
}
echo "</select>";
/* LA LISTE 2 EST GENEREE */
/* ON SUPPRIME LA LISTE 3 SI ELLE A DEJA ETE GENEREE */
?>
<script type="text/javascript">
<!--
document.getElementById("liste3").innerHTML = "<p>Veuillez choisir un element de la liste 2</p>";
//-->
</script>[/php]
et celle qui genere la 3eme liste
[php]<?php
/* CONNEXION A LA BDD ET DIVERS */
$requete = mysql_query("SELECT id, champ FROM table WHERE clauseRecherche = '".$_GET['clauseWhere']."'");
echo "<select name=\"maListe3\" >";
while ($res = mysql_fetch_assoc($requete)) {
echo "<option value=\"".$res['id']."\">".$res['champ']."</option>";
}
echo "</select>";
/* LA LISTE 3 EST GENEREE */
echo "Infos complémentaires ICI !";
?>[/php]
c'est rapide et pas très optimisé mais c'est pour le principe.
Si tu veux plus d'infos sur l'utilisation de l'ajax jette un oeil ici : [url]http://www.toutajax.info/doku.php[/url]