Délai d'occupation

Fermé
securinets Messages postés 77 Date d'inscription dimanche 30 septembre 2012 Statut Membre Dernière intervention 11 septembre 2014 - 28 août 2014 à 14:58
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 28 août 2014 à 21:09
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 dimanche 20 juillet 2014 Statut Membre Dernière intervention 9 avril 2016 126
28 août 2014 à 15:00
Peux t-on voir ton code pour plus d'information?
Merci beaucoup
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 28/08/2014 à 15:30
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 mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
28 août 2014 à 15:31
par contre si il change de page avant ???
0
securinets Messages postés 77 Date d'inscription dimanche 30 septembre 2012 Statut Membre Dernière intervention 11 septembre 2014 1
28 août 2014 à 19:28
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 vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
28 août 2014 à 20:24
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 mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
28 août 2014 à 20:38
y aussi ouvrir un Iframe en hidden
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 28/08/2014 à 20:46
<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 vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
28 août 2014 à 21:09
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