Javascript liste liée perte d'indice

fouedk2 Messages postés 22 Date d'inscription dimanche 21 août 2005 Statut Membre Dernière intervention 25 juin 2008 - 28 mai 2008 à 02:05
fouedk2 Messages postés 22 Date d'inscription dimanche 21 août 2005 Statut Membre Dernière intervention 25 juin 2008 - 28 mai 2008 à 21:59
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 = "";
}
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 "";
include ('valideld2.php');
echo '';
?>


merci beaucoup pour votre aide

7 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mai 2008 à 06:15
Bonjour,

    tu fais une boucle mais pour une réponse ?
    tu n'aurais pas 7 réponses ?

    envoi message 1;

    fonction retour 1 { traitement réponse 1;
                                 envoi message 2;  }
    fonction retour 2  { traitement réponse 2;
                                  envoi messaage 3;   } ...

       enfin... la fonction retour peut-être la même....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
fouedk2 Messages postés 22 Date d'inscription dimanche 21 août 2005 Statut Membre Dernière intervention 25 juin 2008
28 mai 2008 à 10:27
j'ai bien mes 7 listes déroulante qui s'affiche mais comme le code javascript s'exécute après code php, l'indice $i n'est pas pris en compte.
alors que

}else{
$retour = "<select name='' id='liste2' size='1' disabled><option>mission$i</option></select>";
}

là les valeurs sont retournée (mission1, mission2)

je suppose que tu a raison pas de boucle ici

merci bultez
0
fouedk2 Messages postés 22 Date d'inscription dimanche 21 août 2005 Statut Membre Dernière intervention 25 juin 2008
28 mai 2008 à 10:34
Re,

comment donne ton un nom en javascript a une liste déroulante sans prendre compte du php

merci
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mai 2008 à 12:06
>>j'ai bien mes 7 listes déroulante qui s'affiche mais comme le code
javascript
>s'exécute après code php, l'indice $i n'est pas pris en
compte.
    pas un problème javascript ou variable php...
    mais une erreur de logique : je t'ai montré ce qu'il fallait faire

>>comment donne ton un nom en javascript a une liste
>>déroulante sans prendre compte du php

    navré... mais sur ce coup là, je n'arrive pas à traduire

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fouedk2 Messages postés 22 Date d'inscription dimanche 21 août 2005 Statut Membre Dernière intervention 25 juin 2008
28 mai 2008 à 14:56
c'est parceque j'ai pas bien compris ta reponse si tu peux m'expliquer un peu stp

merci
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mai 2008 à 15:12
       pour l'asynchrone

    envoi message 1;
    fonction retour 1 { traitement réponse 1;
                                 envoi message 2;  }
    fonction retour 2 { traitement réponse 2;
                                  envoi message 3;   } ...

        si synchrone
    envoi message 1;
    traitement réponse 1;
    envoi message 2;
    traitement réponse 2;
    envoi message 3;  ...  

    si le php renvoit les 7 listes... le php n'a plus
       rien à voir, et les $variables n'existent plus

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
fouedk2 Messages postés 22 Date d'inscription dimanche 21 août 2005 Statut Membre Dernière intervention 25 juin 2008
28 mai 2008 à 21:59
ok merci beauccoup bultez
0
Rejoignez-nous