Je souhaiterais mettre en place un système de notification qui n'affichera en notification que le Nombre des dernières commandes effectuées exactement comme le système de Notification de Facebook qui nous alerte en temps réel (au niveau de la bar de navigation d'en haut), du Nombre des dernières Notifications qu'on a FRAICHEMENT REÇUES.
Et quand l'utilisateur clique la dessus, et accède à la page des Notifications, l'Alert du Système de Notification disparaît car l'Utilisateur. Il devrait REAPPARAÎTRE lorsqu'il y aura une nouvelle commande.
Cependant, je ne sais pas vraiment comment m'y prendre.
J'ai essayé avec ma requête en PHP et MySQL PDO et un bout de Code AJAX. J'utilise rowCount() pour récupérer le nombre de commandes en tout. Mais ce n'est pas vraiment ce que je veux. Et bien, ce que je veux, c'est un Système de Notification en Temps Réel qui n'affichera que les dernières commandes qui n'ont pas encore été vues.
L'appel en HTML:
Code : Tout sélectionner
<span style="background-color: red; border-radius: 50%; font-size: 20px" id="notification_number"></span>Code : Tout sélectionner
$query = "
INSERT INTO inventory_order (user_id, serie_number, inventory_category_id, inventory_order_date, inventory_order_name, inventory_order_address, payment_status, inventory_order_status, inventory_order_created_date)
VALUES (:user_id, :serie_number, :inventory_category_id, :inventory_order_date, :inventory_order_name, :inventory_order_address, :payment_status, :inventory_order_status, :inventory_order_created_date)
";
$statement = $connect->prepare($query);
$result = $statement->execute(
array(
':user_id' => $_SESSION["user_id"],
':serie_number' => mt_rand(),
':inventory_order_date' => $_POST['inventory_order_date'],
':inventory_order_name' => $_POST['inventory_order_name'],
':inventory_order_address' => $_POST['inventory_order_address'],
':inventory_category_id' => $_POST['inventory_category_id'],
':payment_status' => $_POST['payment_status'],
':inventory_order_status' => 'Pending...',
':inventory_order_created_date' => date("Y-m-d")
)
);Mon Code PHP de la méthode GET de mon Code AJAX ci-dessous (order_notification_number.php):
Code : Tout sélectionner
$query = "SELECT * FROM inventory_order";
$statement = $connect->prepare($query);
$statement->execute();
echo $statement->rowCount();MON Code AJAX:
Code : Tout sélectionner
<script type="text/javascript">
function loadDoc() {
setInterval(function(){
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("notification_number").innerHTML = this.responseText;
}
};
xhttp.open("GET", "order_notification_number.php", true);
xhttp.send();
},1000);
}
loadDoc();
</script>Comment donc faire ce Système d'Alert en Temps réel de sorte à afficher UNIQUEMENT les dernières commandes passées au lieu d'afficher la Totalité de façon statique avec le rowCount() défini dans le Fichier order_notification_number.php ???
Merci de votre aide.