IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Actualisation automatique d'un chat


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut Actualisation automatique d'un chat
    Bonjour,

    Je suis en train d'essayer de faire un chat qui s'actualise automatiquement (pour que l'utilisateur n'ai pas à le faire manuellement et que cela ressemble le plus possible à un vrai chat) et j'ai trouvé une fonction javascript qui le fait parfaitement.
    Maintenant, à chaque actualisation, je demande à ma fonction JS de m'afficher les messages conservés dans ma base de donnée. Cela marche parfaitement avec le champ 'pseudo' mais avec le champ 'commentaire' j'ai les erreurs :

    - Uncaught SyntaxError: Unexpected identifier
    - Uncaught ReferenceError: refresh_div is not defined at onload

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    39
     
    function refresh_div()
        {
            setInterval('rafraichir()', 5000);
        }
     
        function rafraichir()
        {
            document.getElementById('commentairesDiv').innerHTML = '';
     
            <?php
                try
                {
                    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                }
                catch (Exception $e)
                {
                    die('Erreur : ' . $e->getMessage());
                }
     
                $reponse = $bdd->query('SELECT * FROM minichat ORDER BY id');
     
                while ($donnee = $reponse->fetch())
                {
                    echo "console.log('" . htmlspecialchars($donnee['commentaire']) . "');";
                }
     
                /*
                foreach ($reponse->fetchAll() as $donnee)
                {
                    echo "document.getElementById('commentairesDiv').innerHTML += '"
                        . htmlspecialchars($donnee['commentaire'])
                        . "<br /><br />"
                        . "';";
                }
                */
     
            ?>
        }
    Je précise que le programme marche parfaitement si je remplace commentaire par pseudo et que commentaire est un champ existant dans ma base de donnée.

    Si quelqu'un à une solution à me proposer, je suis preneur

    Merci d'avance.

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Bonsoir, j'espère que ta BD a au moins les tables utilisateur et messages, c'est vérifie bien la relation qui existe entre la table utilisateur et la table messages .


    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut
    Bonsoir.

    Ma table 'minichat' est la table contenant les messages et j'ai une table 'userschat' pour mes utilisateurs.
    Maintenant, il n'y a pas de relations entre les deux pour l'instant. Je veux juste afficher les messages contenus dans ma table minichat mais c'est le seul champ de la table que je n'arrive pas à afficher pour une raison que je n'arrive pas à comprendre...

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Javascript s’exécute coté client (navigateur), et PHP du coté serveur. Tu dois utiliser AJAX pour actualiser les données sans recharger la page.

    A+.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 12
    Par défaut
    Effectivement, je viens de faire quelques tests et ça ne prend pas en compte les changements de ma base de donnée..

    J'ai compris merci beaucoup, je n'essaye plus d'actualiser de cette manière mais la question de pourquoi le champ commentaire est le seul à ne pas marcher reste entière...

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    J'ai compris merci beaucoup, je n'essaye plus d'actualiser de cette manière mais la question de pourquoi le champ commentaire est le seul à ne pas marcher reste entière...
    Peut-on voir ce qui marche? et quand tu dis que ça ne marche pas, qu'est ce qui se passe?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', [PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION]);
    Uncaught ReferenceError: refresh_div is not defined at onload
    Tu es sur que le code javascript se trouve dans une balise <script> (avec ou non l'attribut type="text/javascript") ?

    A+.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Actualisation automatique site web
    Par Sparco dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 28/01/2007, 20h08
  2. Actualisation automatique de feuille excel
    Par kangourou_agile dans le forum Access
    Réponses: 1
    Dernier message: 17/08/2006, 10h50
  3. Réponses: 2
    Dernier message: 28/06/2006, 16h00
  4. actualiser automatiquement une page web.
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/05/2006, 17h55
  5. Réponses: 5
    Dernier message: 03/03/2006, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo