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

Résolu
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 442 Date d'inscription   Statut Membre Dernière intervention   6
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention  
 
0