Actualisation bdd et div

Fermé
irin1 Messages postés 35 Date d'inscription samedi 22 novembre 2014 Statut Membre Dernière intervention 8 mars 2023 - 19 mai 2016 à 03:10
jordane45 Messages postés 38394 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 janvier 2025 - 20 mai 2016 à 10:01
Bonjour,
les amis suis pas mal débutant avec ajax, je viens de créer un mini chat, ce qui me casse la tête c' est ce que je ne sais pas comment actualiser ma bdd et mes div que ça soit en ajax ou jquery.
Celui que peut avoir quant même idée peut m'aider et ça me faira vraiment plaisir. voici mes code:

pour l'index.php

<?php
include('functions/connect.php');
include('functions/ibi.func.php');

$page=htmlentities($_GET['page']);
include('functions/'.$page.'.func.php');

$pages=scandir('pages');


if(!empty($page)&& in_array($_GET['page'].".php",$pages))
{

$content='pages/'.$_GET['page'].".php";

}else{
header("Location:index.php?page=login");
}
if(isset($_SESSION['pseudo'])&&$page!='membre' &&$page!='update' &&$page!='update_avatar' &&$page!='liste_membre' &&$page!='profile'&&$page!='envoi' &&$page!='annuler'
&&$page!='invitations'&&$page!='accepter'&&$page!='refuser' &&$page!='amis' &&$page!='supprimer_amis' &&$page!='new_message' &&$page!='conversations' &&$page!='message')
{
header("Location:index.php?page=membre");
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='css/style.css'>
</head>
<body>
<div id='content'>
<?php
include($content);
?>
</div>
</body>
</html>


Pour la page connect.php se trouvant dans le dossier functions

<?php
session_start();
//connexion à la base des données
mysql_connect('localhost','root','') or die(error);
mysql_select_db('rs') or die('Bdd introuvable');
mysql_query('SET NAMES utf8');
?>

est voici la page conversations.php qui est dans le dossier pages qui contient le div à actualiser

<?php
include('functions/membre.func.php');
include('body/header.php');
include('body/menu.php');
?>
<h3>La conversation</h3>
<?php
$conversations = recup_conversation();
if($conversations ==true)
{
foreach($conversations as $conversation)
{
?>
<div class='conversation'>
<a href='index.php?page=profile&pseudo=<?php echo $conversation['pseudo'];?>'><?php echo $conversation['pseudo'];?></a><br/><br/>
<img src='avatar/<?php echo $conversation['avatar'];?>' height='70' width='70'>
<p><a href='index.php?page=message&id=<?php echo $conversation['id_conversation'];?>'><?php echo $conversation['sujet_conversation'];?></a></p>
<p>Date de la récéption : <?php echo date('d/m/Y à H:i:s',strtotime($conversation['date_message']));?></p>
</div>
<?php
}
}else{
?>
<div class='error'>Vous n'avez pas de message</div>

<?php

}
?>


le div à actualiser c' est


<div class='conversation'>
<a href='index.php?page=profile&pseudo=<?php echo $conversation['pseudo'];?>'><?php echo $conversation['pseudo'];?></a><br/><br/>
<img src='avatar/<?php echo $conversation['avatar'];?>' height='70' width='70'>
<p><a href='index.php?page=message&id=<?php echo $conversation['id_conversation'];?>'><?php echo $conversation['sujet_conversation'];?></a></p>
<p>Date de la récéption : <?php echo date('d/m/Y à H:i:s',strtotime($conversation['date_message']));?></p>
</div>



voici sa fonction qui se trouve dans le dossier Functions:


<?php
//recuperation des conversations
function recup_conversation()
{
$results = array();
$sql=mysql_query("
SELECT conversations.id_conversation,
conversations.sujet_conversation,
utilisateurs.pseudo,
utilisateurs.avatar,
conversations_messages.date_message
FROM conversations
LEFT JOIN conversations_messages ON conversations.id_conversation = conversations_messages.id_conversation
INNER JOIN conversations_membres ON conversations.id_conversation = conversations_membres.id_conversation
INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp
WHERE pseudo_dest='{$_SESSION['pseudo']}'
GROUP BY conversations.id_conversation
ORDER BY conversations_messages.date_message DESC
");
while($row = mysql_fetch_assoc($sql))
{
$results[]=$row;
}
return $results;
}
?>

je veux ce div et la bdd soientt actualisées d'une manière automatique

merci à vous qui aurez le souci de m'aider

1 réponse

jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
20 mai 2016 à 09:54
Pour faire tout cela:
<?php 
include($content); 
?> 
</div> 
<script src="jquery.min.js"></script>
<script src="script.js"></script>
</body> 

Il faut donc que tu inclus jquery et ton script javascript, dans ton script javascript, tu va créer un truc dans le genre:
jQuery(document).ready(function($) {

    setInterval(function(){
        rechargeTchat();
    }, 2000);
}); 
function rechargeTchat()
{
    $.ajax({
        url: '/path/to/file',
        type: 'default GET (Other values: POST)',
        dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
        data: {param1: 'value1'},
    })
    .done(function(data) {
        $('.conversation').html(data);
    })
    .fail(function() {
        console.log("error");
    });
    
}

En gros le ready va s'exécuter seulement quand jquery sera bien chargé.
ensuite on fait un setInterval de 2 secondes (en gros toute les 2 secondes on va appeler la fonction rechargeTchat).

La fonction rechargeTchat va aller faire une requête de type GET (ou POST, ou ce que tu veux) sur le fichier choisi.

tu as aussi le moyen d'envoyer des paramètres dans data (te permettant de récupérer ces paramètres dans $_GET ou $_POST).

la fonction done va s'éxécuter si tout à bien marché et va changer le contenu de ta div conversation à la volée.
Il faudra donc que dans ton fichier php tu affiche le html.

tu as aussi la possibilité de renvoyer du json pour construire tes objets document en javascript.

Voilà, j'espère t'avoir aidé.
0
jordane45 Messages postés 38394 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 janvier 2025 4 730
20 mai 2016 à 10:01
Bonjour,

En complément... voici un exemple d'ajax complet
Javascript (jquery) + PHP : https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2


@irin :
NB : Tu utilises encore l'ancienne version de mysql... passe à Mysqli ou PDO
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

NB2 : Penses également à toujours récupérer PROPREMENT tes variables AVANT de les utiliser :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index


NB3 : **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
0