Actualiser une page HTML suivant l'état d'une variable dans une base

Petit nouveau ! | 2 Messages

20 janv. 2021, 18:03

Bonjour,

Je vous soumets mon problème après de longues heures de recherche !

J'ai une base de données (immo) avec une table (actu) avec une variable $flag (qui passe de 0 à 1 ailleurs sur le site).
J'affiche sur ma page HTML différentes images. (peu importe...)
Je voudrai tester cette variable toute les 10s
Si elle est égale à 0, je ne fais rien.
Si elle est égale à 1, je la repasse à 0 et j'actualise ma page.

Voila, ça parait tout simple mais je me casse la tête depuis des heures...

Si vous avez une idée...

Merci

Mammouth du PHP | 2703 Messages

20 janv. 2021, 18:13

https://api.jquery.com/jquery.get/ pour appeler un fichier php et récupérer ce qu'il retourne.
pour le faire toutes les 10 secondes : https://www.w3schools.com/js/js_timing.asp

Petit nouveau ! | 2 Messages

20 janv. 2021, 21:17

Bonjour,

Déjà, merci pour votre réponse rapide.
Mais j’ai du mal m’exprimer.
Le script fonctionne :

<script>
var counter = 10;
var intervalId = null;
function finish() {
clearInterval(intervalId);
window.location.reload();
}
function bip() {
counter--;
if(counter == 0) finish();

}
function start(){
intervalId = setInterval(bip, 1000);
}
</script>

Je récupère ma variable en PHP :


include("connexion.php");
$requete = "SELECT * FROM actu where id ='1'";
$resultat = $db->query($requete);
while ($ligne = $resultat->fetch_assoc()) {
$flag=$ligne['flag'];
}


Maintenant, je veux tester $flag
S'il est égal à 1 : je vais dans function finish() ou header("Refresh:0"); en PHP
S'il est égal à 0 je ne rafraichie pas la page.

En fait, je n'arrive pas à imbriquer les 2.

Merci :)

Mammouth du PHP | 2703 Messages

20 janv. 2021, 21:28

https://api.jquery.com/jquery.get/ pour appeler un fichier php et récupérer ce qu'il retourne.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 janv. 2021, 15:32

Salutations !

Pour pouvoir lire l'information que tu as en base de données, il te faut l'interroger avec php. Pour pouvoir interroger php, il te faut faire appel au serveur. Pour faire appel au serveur sans changer d'url/recharger la page, il faut utiliser du javascript et en particulier de l'ajax.

La librairie jquery proposée par or1 est plutôt bien adaptée pour cela puisqu'elle permet d'appeler le serveur, faire exécuter ton script php qui contrôle la valeur en base, et récupère le résultat retourné (affiché) par le script. En fonction de cette valeur pourra actualiser ou non la page :)

(Autre option, quitte à appeler le serveur pour obtenir une information, tu peux aussi lui demander de te retourner le "bloc qui change" quand ta variable est à 1. Ainsi, au lieu de recharger la page et faire un nouvel appel au serveur, tu actualises en javascript le ou les blocs qui seraient mis à jour avec le rechargement... dans les deux cas, ça se fait avec de l'ajax, et jquery est parfaitement adapté pour cela :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...