bonjour,
j'ai une liste déroulante "valideld1.php" qui déclenche des l'apparition de 7 listes déroulante identique "valideld2.php"
problème ce passe au niveau de javascript qui exécute "valideld2.php" sans prendre compte de l'indice $i (seul le fichier "valideld2.php" fonctionne).
pour resumé je perd l'indice i en passant par javascript (mission1 devient mission)
code valideld2.php
<?PHP
include 'Connexionbd.php';
echo $Ld1_retour =''; //id_département clé de la liste déroulante 1
if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
if ($Ld1_retour!='') {
$rq="Select * from webstem_mission where num_salarie=".$Ld1_retour." order by num_chantier;";
$rq_pos_id=0;
$rq_pos_val=5;
$rq_pos_val6=6;
$rq_pos_val7=7;
$rq_pos_val5=8;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = "<select name='mission$i' id='liste2' size='1' value='' selected><option><-- choix mission --> </option>";
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_row($result)) {
$retour .= "<option value='". $row[$rq_pos_id] ."'>". $row[$rq_pos_val6] ."/".$row[$rq_pos_val5]."/".$row[$rq_pos_val7]." deplacement ".$row[$rq_pos_val]." ¤ </option>";
}
$retour .= "</select>";
} else {
$retour = "<input id='liste2' name='' type='text' size='13' value='pas de mission' disabled>";
}
mysql_free_result($result);
mysql_close($connexion);
}else{
$retour = "<select name='' id='liste2' size='1' disabled><option>mission$i</option></select>";
}
echo $retour
?>
code javascript
// iste deroulante liée
var Ld1Id='';
var Ld2Id='';
var id_liste='';
var mission='';
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)
}
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 ou Ld2
// document.getElementById('buttons').style.display='none';
}
// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
for (j=1; j<8; j++) {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) {
//span id="niv2" ou "niv3"
document.getElementById('mission'+j).innerHTML=xmlhttp.responseText;
// if (xmlhttp.responseText.indexOf('disabled')<=0)
// {
// focus sur liste déroulante 2 ou 3
// document.getElementById('Liste'+j).focus();
// }
}
}
}
}
function Affiche_Btn() {
document.getElementById('buttons').style.display='inline';
}
code php appel liste deroulante 2 dans une boucle for allant de 1 a 7
<?php
echo "<span id='mission$i'>";
include ('valideld2.php');
echo '</span>';
?>
merci beaucoup pour votre aide