Probleme Ajax

Signaler
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012
-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
bonjour je souhaiterais adapté une source du site à savoir celle ci :
 http://www.phpcs.com/codes/CHAINER-LISTES-DEROULANTES-AJAHT_39194.aspx

J'aimerais y ajouté une liste déroulante liées au trois premières, mais cela ne fonctionne pas et je ne parviens pas à savoir pourquoi, est ce que quelqu'un pourrait m'aider?
Voici le code de ma première page, bien que je ne sois pas sure que l'erreur vienne de celle_ci.
Merci d'avance aux personnes qui tenteront de m'aider.

<!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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listes déroulantes pilotées par JavaScript Asynchrone et une Base de données</title>

<script type="text/javascript">
var Ld1Id='';
var Ld2Id='';
var Ld3Id='';
var id_liste='';

function ValideLd2(val) {
    Ld1Id=val; //id_département
    id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
    var LD_URL ='ValideLd2.php?Ld1='+Ld1Id;
    ObjetXHR(LD_URL)
    // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
    if (Ld2Id!='') {ValideLd3('');    }
}

function ValideLd3(val) {
    Ld2Id=val; //id_commune
    id_liste='3'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
    var LD_URL='ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
    if (Ld2Id=='') {var LD_URL = 'ValideLd3.php';}   
    ObjetXHR(LD_URL)
}
function ValideLd4(val) {
    Ld3Id=val; //id_commune
    id_liste='4'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
    var LD_URL ='ValideLd4.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id;
    if (Ld3Id=='') {var LD_URL = 'ValideLd4.php';}   
    ObjetXHR(LD_URL)
}

function ObjetXHR(LD_URL) {
    //creation de l'objet XMLHttpRequest
    if (window.XMLHttpRequest) { // Mozilla,...
        xmlhttp=new XMLHttpRequest();
        if (xmlhttp.overrideMimeType) {
            xmlhttp.overrideMimeType('text/xml');
        }   
        xmlhttp.onreadystatechange=ChargeLd;
        xmlhttp.open("GET", LD_URL, true);
        xmlhttp.send(null);
    } else if (window.ActiveXObject) { //IE
        xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
        if (xmlhttp) {
            xmlhttp.onreadystatechange=ChargeLd;
            xmlhttp.open('GET', LD_URL, false);
            xmlhttp.send();
        }
    }
    // Bouton non apparent car modification de LD1,Ld2 ou Ld3
    document.getElementById('buttons').style.display='none';
}

// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
    if (xmlhttp.readyState==4) {
        if (xmlhttp.status==200) {
            //span id="niv2" ou "niv3" ou "niv4"
            document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText;
            if (xmlhttp.responseText.indexOf('disabled')<=0) {
                //focus sur liste déroulante 2 ou 3
                document.getElementById('Liste'+id_liste).focus();
            }   
        }
    }
}

function Affiche_Btn() {
    document.getElementById('buttons').style.display='inline';
}
</script>

<style>
#buttons {
    display: none;
}
</style>
</head>

<noscript>
Cette page nécessite que JavaScript soit activé; dans votre navigateur
</noscript>

  Selectionnez votre choix dans les listes d&eacute;roulantes:

  <form method="get" action="ListeCP.php">
    <?php
    include ("ValideLd1.php"); ?>&nbsp; <!--Pour remplir la liste déroulante 1-->
   
    <?php include ("ValideLd2.php"); ?>&nbsp; <!--Pour remplir la liste déroulante 2-->
   
    <?php include ("ValideLd3.php"); ?>&nbsp; <!--Pour remplir la liste déroulante 3-->
   
    <?php include ("ValideLd4.php"); ?>&nbsp; <!--Pour remplir la liste déroulante 4-->
   
   
   
  </form>

</html>

1 réponse

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Bonjour,

Une piste : quand l'utilisateur sélectionne une valeur dans une liste déroulante, que se passe-t-il ? rien ? C'est normal car tu ne gères nulle part, à première vue dans le code ci-dessus, l'évènement onchange desdistes listes déroulantes...
A moins que tu ne le déclares dans le code ValideLd1.php, ValideLd2.php et ainsi de suite.
Si ton code est publié et en ligne, tu peux nous indiquer l'URL ? Ainsi, ça t'évitera de révéler ton code PHP.

May Delphi be with you !
<hr color="#008000" />Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.