如何使用AJAX,PHP和MySQL实时进行通知?

时间:2019-02-26 12:29:39

标签: javascript php html mysql ajax

我想在我的网站上进行实时通知。我有通知栏:

<div class="alert alert-info alert-with-icon" data-notify="container">
  <button type="button" aria-hidden="true" class="close">
     <i class="nc-icon nc-simple-remove"></i>
  </button>
  <span data-notify="icon" class="nc-icon nc-bell-55"></span>
  <span data-notify="message"><h6>TEXT HERE</h6></span>
</div>

我想在上方提供的文本中放置文字。

我创建了一个JS函数来调用一个PHP文件,该文件将在数据库中读取最后一条消息。

index.php中的JS代码:

function charger() {

      setTimeout( function(){
        $.ajax({
          url : "charger.php",
          type : GET,
          success : function(html){
            $("h6").prepend(html);
          }
        });

        charger();

      },5000);
    }

    charger();

charger.php中的PHP文件:

<?php

  $servername = "localhost";
  $username = "scanner";
  $password = "valentin";
  $dbname = "Scanner3D";

  try {
    $bdd = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
  catch(PDOException $e)
  {
  }

  // Recuperation des notifications du Scanner
  $requete = $bdd->query('SELECT message FROM notifications ORDER BY id DESC');

  $messages = null;

  while($donnees = $requete->fetch()){
    $messages = $donnees['message'];
  }

  echo $messages;

?>

但是我无法在通知位置显示数据库中读取的文本。

1 个答案:

答案 0 :(得分:0)

GET未定义,因为您应该使用引号将其括起来,因为它是您将使用的HTTP方法的名称,而不是代码中的变量。

$.ajax({
    url: "charger.php",
    type: "GET",
    success: function(html){
        $("h6").prepend(html);
    }
});

顺便说一句,您应该关注setInterval