Page 1 sur 1

Validation d'un formulaire en fonction de l'heure

Posté : 09 nov. 2006, 00:42
par netsupra
Bonjour,
Je souhaiterais soumettre un formulaire qui existe deja sur une page et auquel je ne peux pas toucher à une heure précise. Si possible, il faudrait que le script récupère non pas l'heure du PC mais l'heure du serveur.
Je debute en javascript et je n'ai aucune idée de la fonction a faire.
Netsupraat

Posté : 09 nov. 2006, 00:46
par albat
Pour récupérer l'heure du serveur : PHP
Pour récupérer l'heure du client : Javascript

Posté : 09 nov. 2006, 00:56
par netsupra
Oui et pour valider un formulaire sans refresh -> Javascript, et c'est justement sur ce point que j'ai besoin d'aide...
Merci,
Netsupra

Posté : 09 nov. 2006, 01:05
par albat
Vu d'ici, c'est pas bien compréhensible, ton truc... :?
Un bout de code pourrait peut-être nous aider à y voir un peu plus clair, non ?

Posté : 09 nov. 2006, 01:14
par netsupra
Justement, c'est assez rare mais la je seche totalement donc je peux pas te fournir de code.
J'ai l'heure du serveur a un instant donné que je converti en seconde.
Il faut que j'ai deux chose : d'une part un compteur qui s'incremente toutes les secondes, et d'autres part, une fonction qui me permet lorsque le compteur atteint une valeur donnée de valider un formulaire se trouvant sur une page.
PS : je suis developpeur confirmé en PHP mais débutant en javascript.

Posté : 09 nov. 2006, 01:19
par albat
Si j'ai bien compris, le principe serait :
  1. PHP récupère l'heure du serveur
  2. Javascript compare cette heure serveur récupérée par PHP avec l'heure de référence
  3. Si égalité, Javascript lance automatiquement l'envoi/validation du formulaire
C'est ça ? :-s

Posté : 09 nov. 2006, 01:23
par netsupra
:D Exactement :D
As-tu une idée, Ô grand modo de comment faire :D
Je suis sur que ma question est debile mais la je seche :'(

Posté : 09 nov. 2006, 05:19
par Ajoloca
Bonjour,
Une solution consiste à jouer avec l'interval (en millisecondes) entre le moment présent et l'heure d'envoie du formulaire.
Et on utilise après la fonction JS setInterval() qui permet l'exécution d'une tache dans un lapse de temps (calculé en milisecondes)

Ça nous donnerai QQ chose du style
<?php
$heureEnvoie = 79200; // 22h00 en secondes
$maintenant = date('H') * 3600 + date('i') * 60 + date('s');
/*
** CALCUL DU NOMBRE DE MILLIEMES DE SECONDE A ATTENDRE
** Si $maintenant > $heureEnvoie on change de jour
** Exp: Il est 22h et on doit l'envoyer à 03h
*/
$interval = ($maintenant > $heureEnvoie ?  (86800 - $maintenant) + $heureEnvoie : $heureEnvoie - $maintenant) * 1000;
?>
<html>
<head>
	<script type="text/JavaScript">
		// Déclaration de l'dentifiant du timer
		timerId = null;
		
		function evoieFormulaire(){
			// Annule toute nouvelle action
			clearInterval(timerId);
			// Soumission du formulaire
			document.ma_form.submit(); 
		}
	</script>
</head>
<body onLoad="JavaScript:timerId = setInterval('evoieFormulaire()', <?php echo $interval;?>);">
<form name="ma_form" action="ma_page.php" method="post">
</form>
</body>
</html>

Posté : 09 nov. 2006, 19:51
par netsupra
Merci ;)