Délai d'occupation

securinets Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   -  
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je suis debutante en php j'ai besoin de votre aide pour la realisation de mon application web,en fait j'ai besoin de changer un attribut dans ma base de donnée aprés un délai spécifier par l'internaute je me bloque quelqu'un qui a une idée svp merci d'avance



4 réponses

mr_demonicon Messages postés 828 Date d'inscription   Statut Membre Dernière intervention   126
 
Peux t-on voir ton code pour plus d'information?
Merci beaucoup
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
a Priori c est un code javascript sur un setinterval("fctMAJ.php?Id="+formId+"&valeur="+formvalue")
https://www.toutjavascript.com/reference/ref-window.setinterval.php
NB pas obligé de passer par un formulaire evenement button onclick

fctMAJ.php
connection a la Bdd puis MAJ des donnees

$result = mysql_query('UPDATE MATABLE SET colonne = " '.$_GET['Valeur']. ' "WHERE ID='.$_GET['Id']);

https://sql.sh/cours/update
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
par contre si il change de page avant ???
0
securinets Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   1
 
il me semble que setinterval va repeter l'instruction dans chaque intervalle de temps mais moi j'ai besoin de changer un attribut aprés un delai donc aprés une recherche j'ai trouvé la fonction setTimeout donc j'ai mis setTimeout("fctMAJ.php",1000) ; mais il indique une erreur
0
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
SettimeOut active une fonction Javascript, et ne peut pas exécuter une page php comme cela.
De toute façon, le javascript étant un langage client, si celui-ci ferme sa page, le code ne va pas s'exécuter, et ce n'est pas ce que tu souhaite.

La solutions la plus simple est d'enregistré les actions à faire dans une table, grâce à une tâche Cron tu pourra ainsi les traiter le moment venu.
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
y aussi ouvrir un Iframe en hidden
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
<script>
function fctMAJ() {
     var Ef=document.getElementsByName("suivi");
     if ( Ef.length==0 ) {
         Ef = document.createElement("IFRAME");
         Ef.setAttribute("name", "suivi");
         } else {Ef=Ef[0];}
         var Id=document.getElementsByName("Id")[0].value;
         var formvalue=document.getElementsByName("formvalue")[0].value;
         Ef.setAttribute("src", "fctMAJ.php?Id="+formId+"&valeur="+formvalue);
         Ef.setAttribute("visibility", "hidden");
document.appendChild(Ef);
}

 setTimeout("fctMAJ",1000) ;
</script>
0
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
Le problème est le même, si l'internaute ferme sa page, ton code sera pas exécuté.
Tu complique en plus un système très simple qui est l'ajax avec tes iframes ...

Mais ça ne peut de toute façon pas marcher si on veut permettre à l'utilisateur de fermer la page avant la fin. (L'intérêt est inexistant d'ailleurs, on lui dit de rentrer un délai pour déclencher une action, mais faut qu'il reste devant pour qu'elle soit lancé ?)

Enfin bref...
0