sur mon tchat j'avais oublié de mettre à jour mon formulaire avec le nouveau destinataire quand on change de conversasion mais le destinataire ne change pas c'est toujours le même qui est récupéré
Pourquoi utilise-tu document.getElementById alors qu'un petit $('#id') suffit ?
je ne vois pas de class="chat_profils_home" dans ton html
tu remplis quelque chose qui a un id affiche_mess, je ne le vois pas non plus dans ton html
Je pense que ton problème viens de tes sélecteurs jquery qui sont null (un sélecteur jquery selectionne les objets du dom, il ne les créé pas par magie)
Un petit conseil : si tu as un peu de temps et que tu te débrouille en anglais, fais un tour sur https://socket.io/get-started/chat/ (ça doit aussi exister sur open classrooms)
j'avais mis qu'une partie du code et j'ai du oublier une partie voici le code complet de la page
<?php
session_start();
include "".$_SERVER['DOCUMENT_ROOT']."/include/mysql_connect.php";
?>
<script>
var interval;
clearInterval(interval);
function update(){
var id_update = $('#affiche_mess div:last').attr('id'); // on récupère le dernier ID
var exp = $('#affiche_mess div:last').attr('data-exp');
var dest = $('#affiche_mess div:last').attr('data-dest');
$.ajax({
url : "/fiche_cli/update_mess.php?id=" + id_update + "&exp=" + exp + "&dest=" + dest, // on passe l'id le plus récent au fichier de chargement
method : 'GET',
success : function(html){
$('#affiche_mess').append(html);
}
});
}
interval = setInterval(function() {update();}, 1000);
$(document).ready(function() {
//var interval;
$("body").on('click', '.chat_profils_homme',function(event) {
event.preventDefault();
var afficheMess = document.getElementById('affiche_mess');
var id_refresh = $('#affiche_mess div:first').attr('id');
var exp = $('.chat_profils_homme').attr('data-exp');
var dest = $('.chat_profils_homme').attr('data-dest');
clearInterval(interval);
var url = $(this).prop('href');
$.ajax({url:url}).done(function(data) {
$("#affiche_mess").html(data);
afficheMess.scrollTop = afficheMess.scrollHeight;
});
$.ajax({
url: '/fiche_cli/ajoute_mess.php?exp=' + exp + '&dest=' + dest
}).done(function(data) {
$("#chat_ecrire").html(data);
});
interval = setInterval(function() {update();}, 1000);
});
$('#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');
document.forms['ajoute_mess'].reset();
document.getElementById('affiche_mess').scrollTop=document.getElementById('affiche_mess').scrollHeight;
}).catch(function (error) {
console.log(error);
});
}).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
$sql2 = "SELECT dest FROM chat WHERE exp='".$_SESSION["pseudo"]."' GROUP BY dest";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
while($data2 = mysql_fetch_array($req2))
{
$sql3 = mysql_query("SELECT sexe FROM membres WHERE pseudo='".$data2['dest']."'") or die (mysql_error());
list($sexe) = mysql_fetch_row($sql3);
if ($sexe == 'Homme')
{
echo '<A data-exp="'.$_SESSION['pseudo'].'" data-dest="'.$data2['dest'].'" style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="/fiche_cli/affiche_mess.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'</a>';
}
else
{
echo '<A data-exp="'.$_SESSION['pseudo'].'" data-dest="'.$data2['dest'].'" style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="/fiche_cli/affiche_mess.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'</a>';
}
}
?>
</div>
<div id="chat_ecrire" class="chat_ecrire">
<form id="ajoute_mess" name="ajoute_mess" action="" method="get">
<?php
if (isset($_SESSION['pseudo']))
{
echo '<input type="hidden" name="action" value="envoyer">';
}
else
{
echo '<input type="hidden" name="action" value="no_connect">';
}
?>
<input type="hidden" name="dest" value="<?php echo $_GET['dest']; ?>">
<input type="hidden" name="exp" value="<?php echo $_GET['exp']; ?>">
<INPUT type="text" name="message" placeholder="Entrez votre message" value="">
<button class="btn">Envoyer</button>
</form>
</div>
<div id="affiche_mess" style="line-height: 10px;" class="messages">
<?php
$aujourdhui = date("Y-m-d H:i:s");
if (isset($_GET['message']))
{
$sql1 = "INSERT INTO chat (exp,dest,mess,date,nouv) VALUES('".$_GET['exp']."','".$_GET['dest']."','".$_GET['message']."','$aujourdhui','oui')";
mysql_query($sql1) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error());
}
$sql2 = "SELECT exp,dest,mess,id FROM chat WHERE exp='".$_GET["exp"]."' AND dest='".$_GET['dest']."' OR exp='".$_GET['dest']."' AND dest='".$_GET["exp"]."' ORDER BY id ASC";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
while($data2 = mysql_fetch_array($req2))
{
if ($data2['exp']==$_GET['exp'])
{
echo '<div data-exp="'.$_GET["exp"].'" data-dest="'.$_GET["dest"].'" id="'.$data2['id'].'">Moi: '.$data2['mess'].'</div><br>';
}
if ($data2['exp']==$_GET['dest'])
{
echo '<div data-exp="'.$_GET["exp"].'" data-dest="'.$_GET["dest"].'" id="'.$data2['id'].'">'.$data2['exp'].': '.$data2['mess'].'</div><br>';
}
}
?>
</div>
</div>
Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça
tchat mettre a jour formulaire message
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça
Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça