Evénement javascript sur une liste créée en AJAX [Résolu]

Signaler
Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjourno !

J'ai 4 listes déroulantes dont les contenus sont liés. La première et la seconde restent fixes, donc les événements "onchange" définis fonctionnent et mettent à jour les listes 3 et 4.

Les listes 3 et 4 sont regénérées entièrement en AJAX (du "<select>" au "</select>").

=> le problème c'est que le "onchange" défini sur ces listes regénérées ne marche pas (qu'il soit défini sur la page de départ ou dans le retour avec le code généré par la page générant les listes).

Ci-dessous le dernier essai de code sur ma page de génération de liste (PHP + javascript) :

$str_retour_liste3 = "<select name='liste_villes' id='liste_villes' style='font-size:11px;' onchange='maj_filtrage2();'><option value='i'>".$trad_localisation_toutes_villes."</option>";
while(@extract(mysql_fetch_array($res_localisation))){
$str_retour_liste3 .= "<option value='".$localisation."'>".$localisation."</option>";
}
$str_retour_liste3 .= "</select>";

echo $str_retour_liste3;

<script type="text/javascript">
window.addEvent('domready',function() 									 
{	
var myRequest2a = new Request({
url: 'regénérer_liste.php',
method: 'get',
evalScripts: true,
 
onSuccess: function(responseText, responseXML){
$('div_genre').innerHTML = responseText;
}
});

function maj_filtrage2(){
alert("maj2");
var sel1 = document.getElementById("type");
var sel2 = document.getElementById("genre");
var sel3 = document.getElementById("liste_villes");
var sel4 = document.getElementById("budget");
var l1 = sel1.options[sel1.selectedIndex].value;
var l2 = sel2.options[sel2.selectedIndex].value;
var l3 = sel3.options[sel3.selectedIndex].value;
var l4 = sel4.options[sel4.selectedIndex].value;
myRequest2a.send('liste1='+l1+'&liste2='+l2+'&liste3='+l3+'&liste4='+l4);
}
});
</script>


> le "onchange'maj_filtrage2();'" ne marche pas car le "alert('maj2')" ne marche pas.

Je sèche depuis 2 jours sur ce pb, si qqun savait comment le résoudre ça m'arrangerait grandement !

@+! Samy

3 réponses

Messages postés
1623
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
2
parce qu'à l'extérieur ça ne marchait pas non plus. J'me suis dit que tant qu'à faire on va la mettre quand le DOM est ready, p't'être qu'il aimera mieux.

Entre temps, j'ai trouvé un moyen de contourner mon problème de code non interprété : je redéclare l'addEvent sur ma liste sur le onSuccess du Request de départ !

...on passe 2 jours sans rien trouver, puis 10 minutes après avoir posté on trouve LE truc qui vous délivre d'un POIDS ;)

Merci quand même d'avoir lu mon post.

@+! Samy
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
Bonjour,
Pourquoi faire simple quand...etc...
Pourquoi mettre la fonction dans l'événement onload, heu pardon domready ?
;O)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
RIEN RIEN
mets quand même ta réponse en acceptée....
;O)