Bonjour je crée un tchat en php et ajax mais j'ai un soucis la mise a jour de mes profils ne se fait pas au submit du formulaire
par contre les données sont bien la si je recharge la page
voici mon code:
<?php
session_start();
include "".$_SERVER['DOCUMENT_ROOT']."/include/mysql_connect.php";
?>
<script>
$(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
document.getElementById('list_profil').innerHTML; // Mise à jour des profils de contact
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>
Salut
Cette ligne ne fait rien du tout: document.getElementById('list_profil').innerHTML;
Manque un = 'blabla'
afin de mettre a jour son contenu.
ça m'arrange pas lol, l'objectif est le suivant:
je selectionne un utilisateur, j'ouvre un tchat avec lui et quand le message est posté je voudrais mettre à jour la liste des utilisateurs avec qui il est en contacte
les données proviennent de mysql
Faudrait refaire un call ajax vers liste_profil.php
au niveau de la ligne précisée dans mon premier message.
Ce php te retourne un HTML (comme actuellement je pense), et juste à mettre ce HTML dans le block list_profil
.
Exactement comme tu as fais pour mettre à jour les messages :)
je pensais qu'il etait possible de mettre à jour deux div en même temps
j'ai donc ajouter une seconde requete ajax dans la 1ere et ça fonctionne à merveille
il me reste juste un petit soucis:
quand je demarre une nouvelle converstion avec un nouveau contact ma div se met bien a jour au submit
mais cette liste remonte vers le haut je voulais donc appliquer une nouvelle position mais ça fonctionne pas
voici mon css:
.chat_profils_homme
{
position: relative;
top: -30px;
left: -20px;
font-size: 12px;
}
ma requete ajax:
$.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);
});
c'est dans cette partie que je souhaite modifier la position apres le post car les profils remontent et je ne vois plus le 1er profil de la liste:
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 ($data2['dest']!=$_GET['dest'])
{
if ($sexe == 'Homme')
{
echo '<A style="margin-bottom: -15px; color: #007ba2;" class="chat_profils_homme" href="chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'</a>';
}
else
{
echo '<A style="margin-bottom: -15px; color: #f40e63;" class="chat_profils_homme" href="chat.php?exp='.$_SESSION['pseudo'].'&dest='.$data2['dest'].'">'.$data2['dest'].'</a>';
}
}
}