Forums Développement Multimédia

Aller au contenu

problème menus déroulants dynamique en ajax

CODE Ajax JQuery EaseJs

  • Vous ne pouvez pas répondre à ce sujet
Aucune réponse à ce sujet

#1 bob

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 30 September 2008 - 13:09 PM

Bonjour,

J'ai suivi un tuto sur internet pour créer des menus déroulants (3menus). J'ai essayé de créer un script pour 4 menus, mais le dernier menu ne charge pas

j'ai d'assez bonnes connaissances en php, mais de très mauvaises en java. Je pense que l'erreur est dans la première page (insertcours.php) dans le code java et ajax.

Est-ce que qqun peut venir a mon secours merci bcp

(petite explication, la page inscription.php renvoie aux pages ValideLd1.php ValideLd2.php ValideLd3.php ValideLd4.php dans lesquels je fais les requetes php pour remplir les listes.)


inscription.php:

<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_département
id_liste='3';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
ObjetXHR(LD_URL)
// Réinitialisation de Ld3 si modification de LD1 après passage en Ld3
if (Ld3Id!='') {ValideLd4(''); }
}

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 (Ld4Id=='') {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, true);
xmlhttp.send();
}
}
// Bouton non apparent car modification de LD1 ou Ld2
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"
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>

<form name="form1" method="post" action="">
<?PHP
include 'ValideLd1.php'; ?>  <!--Pour remplir la liste déroulante 1-->
<span id="niv2">
<?PHP include 'ValideLd2.php'; ?></span>  <!--Pour remplir la liste déroulante 2-->
<span id="niv3">
<?PHP include 'ValideLd3.php'; ?></span>  <!--Pour remplir la liste déroulante 3-->
<span id="niv4">
<?PHP include 'ValideLd4.php'; ?></span>  <!--Pour remplir la liste déroulante 4-->
<span id="buttons"><span id="buttons">
<input type="submit" value="Valider">
</span>
</form>
ValideLd1.php:

<?php include'../Connections/connect.php';
mysql_select_db($database_connect, $connect);
$query_rq1="Select id_ecole,name_ecole from ecole ;";
$rq1= mysql_query ($query_rq1, $connect) or die(mysql_error());
$row_rq1 = mysql_fetch_assoc($rq1);
$totalRows_rq1 = mysql_num_rows($rq1);

$retour = '<select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisir...</option>';


if (mysql_num_rows($rq1) != 0) {
do {
$retour .= '<option value="'. $row_rq1['id_ecole'] .'">'. $row_rq1['name_ecole'] .'</option>';
}while ($row_rq1 = mysql_fetch_assoc($rq1));

$retour .= '</select>';
} else {
$retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($rq1);
echo $retour
?>

ValideLd2.php:

<?php include'../Connections/connect.php';


mysql_select_db($database_connect, $connect);
$Ld1_retour =''; //id_département clé de la liste déroulante 1

if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}

if ($Ld1_retour!='') {
$query_rq2="Select id_section, name_section from section where id_ecole=".$Ld1_retour." order by name_section;";
$rq2= mysql_query ($query_rq2, $connect) or die(mysql_error());
$row_rq2 = mysql_fetch_assoc($rq2);
$totalRows_rq2 = mysql_num_rows($rq2);

$retour = '<select name="Liste2" id="Liste2" size="1" onchange="ValideLd3(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisir...</option>';

if (mysql_num_rows($rq2)!= 0) {
do {
$retour .= '<option value="'. $row_rq2['id_section'] .'">'. $row_rq2['name_section'] .'</option>';
} while ($row_rq2 = mysql_fetch_assoc($rq2));
$retour .= '</select>';
} else {
$retour = '<input id="Liste2" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($rq2);
}else{
$retour = '<select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select>';
}
echo $retour
?>


ValideLd3.php:


<?php include'../Connections/connect.php';

mysql_select_db($database_connect, $connect);
$Ld1_retour =''; //id_ecole clé de la liste déroulante 1
$Ld2_retour =''; //id_section clé de la liste déroulante 2

if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
if (isset($_GET['Ld2'])) {$Ld2_retour = $_GET['Ld2'];}

if (($Ld1_retour!='')&&($Ld2_retour!='')) {
$query_rq3 ="Select id_annee, annee from anne where id_ecole=".$Ld1_retour." AND id_section=".$Ld2_retour." order by annee;";

$rq3= mysql_query ($query_rq3, $connect) or die(mysql_error());
$row_rq3 = mysql_fetch_assoc($rq3);
$totalRows_rq3 = mysql_num_rows($rq3);

$retour = '<select name="Liste3" id="Liste3" size="1" onchange="ValideLd3(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisir...</option>';

if (mysql_num_rows($rq3) != 0) {
do {
$retour .= '<option value="'. $row_rq3['id_annee'] .'">'. $row_rq3['annee'] .'</option>';
} while ($row_rq3 = mysql_fetch_assoc($rq3));

$retour .= '</select>';
} else {
$retour = '<input id="Liste3" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($rq3);
}else{
$retour = '<select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select>';
}
echo $retour

?>

ValideLd4.php:
<?php include'../Connections/connect.php';

mysql_select_db($database_connect, $connect);
$Ld1_retour =''; //id_ecole clé de la liste déroulante 1
$Ld2_retour =''; //id_section clé de la liste déroulante 2
$Ld_retour =''; //id_section clé de la liste déroulante 3

if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
if (isset($_GET['Ld2'])) {$Ld2_retour = $_GET['Ld2'];}
if (isset($_GET['Ld3'])) {$Ld2_retour = $_GET['Ld3'];}

if (($Ld1_retour!='')&&($Ld2_retour!='')) {
$query_rq4 ="Select cours from list_cours where id_ecole=".$Ld1_retour." AND id_section=".$Ld2_retour." AND id_anne=".Ld3_retour." order by cours;";

$rq4= mysql_query ($query_rq4, $connect) or die(mysql_error());
$row_rq4 = mysql_fetch_assoc($rq4);
$totalRows_rq4 = mysql_num_rows($rq4);

$retour = '<select name="Liste3" id="Liste3" size="1" onchange="Affiche_Btn();">';
$retour .= '<option selected value="">Choisir...</option>';

if (mysql_num_rows($rq4) != 0) {
do {
$retour .= '<option value="'. $row_rq4['id_cours'] .'">'. $row_rq4['cours'] .'</option>';
} while ($row_rq4 = mysql_fetch_assoc($rq4));

$retour .= '</select>';
} else {
$retour = '<input id="Liste4" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($rq4);
}else{
$retour = '<select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select>';
}
echo $retour

?> 




1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP