If qui ne fonctionne pas à la première boucle ?

Résolu/Fermé
juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021 - Modifié le 19 mai 2019 à 00:56
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 19 mai 2019 à 17:42
Bonjour a toute et a tous je viens vers vous car j'ai un problème que je ne trouve pas de solutions et qui est récurent sur deux pages de mon site voici les différentes étapes avant le problème

1. lancement de la page (logique ^^)
2. chargement de la fonction redirection
3. execution de la fonction setInterval au bout de 3 secondes pour lancer la fonction redirection
4. lancement d'une page php
5. lecture du résultat de la page php dans un input
6. le if ne prend pas
7. la fonction se termine
8. la fonction redirection se relance au bout de 3 seconde
9. le if fonctionne

je tien a dire que la valeur de ma balise a tous le temps la valeur "true" voici mon script :

 var redirection = function()
    {
        //DEBUT TEST SI RASPBERRY ET SI CONFIGURER
  //si cookie existe
  if (document.cookie.length > 0)
  {

    adresse = document.getElementById('adresse').innerHTML;
  //si n'est pas connue de la bdd
  message = $('#message').text().length
  if (message != 0)
  {
    document.getElementById('message').innerHTML = "";
  }

  $("#mac").load("../include/script/configuration.php?adresse="+adresse);

  //si la balise est vide
  var adresse = document.getElementById('mac').innerHTML;

  if (adresse != "true")
  {
    console.log("L'écran n'est pas connue dans la base de données !");
    //redirection vers page de configuration.php
    // document.location.href="configuration.php";
  }
  else
  {
    console.log("l'écran est connue dans la base de données !");
  }

}
else
{
  console.log("Un utilisateur est détécter ");
}
//FIN SI RASPBERRY ET SI CONFIGURER
}

  setInterval("redirection()", 3000);

Merci a toutes et a tous pour votre aide ! :)

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 mai 2019 à 08:58
Bonjour,

Le if ne s'executerait pas avant que le load ait terminé ?
Il faudrait mieux utiliser un callback
par exemple
 var redirection = function() {
   //DEBUT TEST SI RASPBERRY ET SI CONFIGURER
   //si cookie existe
  if (document.cookie.length > 0) {

    var adresse = $('#adresse').html();
    //si n'est pas connue de la bdd
    var message = $('#message').text().length
    if (message != 0) {
      $("#message").html("");
    }

    $("#mac").load("../include/script/configuration.php?adresse="+adresse,function() {
       //lorsque le chargement est terminé
       //si la balise est vide
      var adresse = $("#mac").html();
      if (adresse != "true") {
        console.log("L'écran n'est pas connue dans la base de données !");
        //redirection vers page de configuration.php
        // document.location.href="configuration.php";
      } else  {
        console.log("l'écran est connue dans la base de données !");
      }
    }); 
  } else {
    console.log("Un utilisateur est détécter ");
  }
  //FIN SI RASPBERRY ET SI CONFIGURER
}


Ensuite, y'a t'il un interet à charger le "contenu" du fichier php dans ta page ?
Si ce n'est que pour récupérer une valeur... un $.Ajax serait certainement mieux qu' un $.load
0
juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021 6
19 mai 2019 à 11:45
en faite dans la page php il y a un script qui récupère une information de la raspberry et qui test si cette chose récupérer est présente dans la base de données si oui il retourne true dans la balise. Merci beaucoup le script fonctionne a présent ! je vais regarder pour le faire avec $.Ajax. :)
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021
19 mai 2019 à 17:42
0