AaFrederic Husson,
il y a 8 ans
Pierrot01,
il y a 8 ans
setInterval à la place de setTimeOut
setInterval(function(){update(); }, 5000);
@plus
Pierre
AaFrederic Husson,
il y a 8 ans
merci pour la reponse petite question comme ça en passant est ce qu'il serais possible de raffraichir dans cet appel ajax toutes les 5 secondes?
j'ai commenté dans le code ou je voudrais faire le refresh
$.ajax({
url: '/fiche_cli/affiche_mess.php',
method: 'GET',
dataType: 'html',
data: $form.serialize()
}).then(function (data) {
$("#affiche_mess").html(data); <-- Raffraichir ici toutes les 5 secondes
Defy,
il y a 8 ans
avec un setInterval qui fait un appel ajax toute les 5 secondes ca devrait etre bon .
AaFrederic Husson,
il y a 8 ans
j'ai modifié et la ça m'apelle bien le div et le met bien a jour toutes les 5 secondes mais le soucis c'est que à chaque fois que je change de discution ça me bascule entre chaque discution sur lesquels j'ai cliqué
$(document).ready(function() {
$("body").on('click', '.chat_profils_homme',function(event) {
event.preventDefault();
var url = $(this).prop('href');
$("#affiche_mess").load(url); // j'apelle le div
setInterval(function() {$("#affiche_mess").load(url); },5000); // je le met à jour toutes les 5 secondes
});
});
j'apelle d'abord la div et je met ensuite une fonction pour le mettre à jour sinon il faut attendre 5 secondes avant que la discution demandé s'affiche mais la le soucis c'est que ça me bascule entre les discutions qui ont été sélectionné
en fait si je comprend bien, à chaque clic je rajoute le div dans le dom et il faudrais donc que je le supprime avant de faire mon load mais ça je ne sais pas faire enfin si c'est bien ça
Pierrot01,
il y a 8 ans
.empty() fait ça bien ;)
a+
AaFrederic Husson,
il y a 8 ans
j'ai modifié
$(document).ready(function() {
$("body").on('click', '.chat_profils_homme',function(event) {
event.preventDefault();
var url = $(this).prop('href');
$("#affiche_mess").empty();
$("#affiche_mess").load(url); // j'apelle le div
setInterval(function() {$("#affiche_mess").load(url); },5000); // je le met à jour toutes les 5 secondes
});
});
mais ça change rien j'ai toujours se basculement de discution
Pierrot01,
il y a 8 ans
faut l'vider à chaque fois ;)
setInterval(function() {$("#affiche_mess").empty().load(url); },5000);
@plus
Pierre
AaFrederic Husson,
il y a 8 ans
ça change toujours rien c'est la même chose
<?php
session_start();
include "".$_SERVER['DOCUMENT_ROOT']."/include/mysql_connect.php";
?>
<script>
$(document).ready(function() {
$("body").on('click', '.chat_profils_homme',function(event) {
event.preventDefault();
var url = $(this).prop('href');
$("#affiche_mess").empty().load(url); // j'apelle le div
setInterval(function() {$("#affiche_mess").empty().load(url); },5000); // je le met à jour toutes les 5 secondes
});
});
$(document).ready(function (e) {
$('#ajoute_mess').on('submit', function(e) {
e.preventDefault();
var $form = $(this);
$.ajax({
url: '/fiche_cli/affiche_mess.php',
method: 'GET',
dataType: 'html',
data: $form.serialize()
}).then(function (data) {
$("#affiche_mess").html(data); // Mise à jour des messages
$.ajax({
url: '/fiche_cli/liste_profil.php',
method: 'GET',
dataType: 'html',
data: $form.serialize()
}).then(function (data) {
$("#list_profil").html(data);
$('.chat_profils_homme').position({
top : '30px'
});
}).catch(function (error) {
console.log(error);
});
document.forms['ajoute_mess'].reset(); // Reset du formulaire
document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight; // Baisse la scrollbar
}).catch(function (error) {
console.log(error);
});
});
});
document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight;
</script>
<br>
<div class="chatter">
<div id="list_profil" class="chat_profils">
<?php include "".$_SERVER['DOCUMENT_ROOT']."/fiche_cli/liste_profil.php"; ?>
</div>
<div class="chat_ecrire">
<?php include "".$_SERVER['DOCUMENT_ROOT']."/fiche_cli/ajoute_mess.php"; ?>
</div>
<div id="affiche_mess" class="messages">
<?php include "".$_SERVER['DOCUMENT_ROOT']."/fiche_cli/affiche_mess.php"; ?>
</div>
</div>
Kenor,
il y a 8 ans
Tu lances un chat > tu as un interval ttes les X sec.
Tu lances un second chat (discussion) > tu as un interval tte les X sec MAIS, tu as toujours le premier interval qui continu à tourner.
Par conséquent, tu dois mettre une variable avant ton .on('click') (var myInterval;)
Puis mettre ton setInterval dans cette variable (myInterval = setInterval ...)
et au début du .on('click'), bien penser à stopper l'interval précédent
if (myInterval !== undefined) { clearInterval(myInterval); }
AaFrederic Husson,
il y a 8 ans
je suis pas sur d'avoir compris mais ce que j'ai fait ne fonctionne pas
$(document).ready(function() {
var interval = setInterval;
$("body").on('click', '.chat_profils_homme',function(event) {
if (interval !== undefined)
{
clearInterval(interval);
}
event.preventDefault();
var url = $(this).prop('href');
$("#affiche_mess").empty().load(url); // j'apelle le div
setInterval(function() {$("#affiche_mess").empty().load(url); },5000); // je le met à jour toutes les 5 secondes
});
});
Pierrot01,
il y a 8 ans
var interval = setInterval(function() {$("#affiche_mess").empty().load(url); },5000); // je le met à jour toutes les 5 secondes
AaFrederic Husson,
il y a 8 ans
Pierrot01,
il y a 8 ans
ça fait quoi exactement ?
AaFrederic Husson,
il y a 8 ans
et bien je clique sur un pseudo ça m'affiche la conversasion qui se met à jour comme prévu
si je clique ensuite sur un autre pseudo ça m'affiche une autre conversasion mais là au lieu de refresh la conversasion en cours
ça bascule entre les deux conversasion
j'espere que je suis claire avec mes explications
Pierrot01,
il y a 8 ans
$(document).ready(function() {
var interval;
$("body").on('click', '.chat_profils_homme',function(event) {
event.preventDefault();
clearInterval(interval);
var url = $(this).prop('href');
$("#affiche_mess").empty().load(url); // j'apelle le div
interval = setInterval(function() {$("#affiche_mess").empty().load(url); },5000); // je le met à jour toutes les 5 secondes
});
});
Kenor,
il y a 8 ans
Pas comme tu l'as fais, mais comme vient de le faire Pierrot1.
(le "interval = setInterval ....", le "..." = le reste de ton setInterval)
AaFrederic Husson,
il y a 8 ans
merci à tous maintenant ça fonctionne