DIV cliquable après requête
Bonjour à tous !
J'ai un soucis un peu embêtant : un div cliquable contient le résultat d'une requête SQL. Elle est mise à jour par ajax toutes les secondes. Quand je clique dessus, je veux récupérer une valeur de ma requête :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| /* page php : */
foreach($posteur as $p) {
if (!$p['lu']) {
echo '<div class="clientMessage recent">';
}
else {
echo '<div class="clientMessage">';
}
echo '<time>'.$p['datetime_message'].'</time>';
echo '<h4>'.$p['nom_posteur'].' : </h4>';
echo '<p>'.substr($p['texte'], 0, 140).'</p>';
echo '</div>';
}
/* fonctions js : */
// pour récupérer ma valeur en cliquant sur la div
$('.clientMessage').on('click', function() {
var $text = $(this).children("h4").text();
var $pseudo = $text.indexOf(":", 0);
$pseudo = $text.substring(0, $pseudo-1);
alert($pseudo);
});
// pour mettre à jour via ajax :
function load(callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
callback(xhr.responseText);
}
};
xhr.open('GET', 'http://localhost/tests/siteComportementaliste/php/chats.php', true);
xhr.send(null);
}
function readData(sData) {
$("#jajax").html(sData);
}
setInterval(function() {
load(readData);
}, 1000); |
Si je mets juste la première fonction, quand je clique je récupère ma valeur, c'est magnifique. Quand je mets ma fonction pour mettre à jour, tout va pour le mieux dans le meilleur des mondes. Par contre, quand je mets les 2 ensembles, la fonction qui clique boude et je ne peux plus récupérer ma valeur :(
Quelqu'un saurait remédier à ce problème ? (Je précise, je suis débutant, peut être que je fais quelque chose de stupide ou que la solution est évidente... n'hésitez pas à me dire s'il y a autre chose qui ne va pas d'ailleurs).
Merci d'avance de votre aide !