Page 1 sur 1
Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 16:00
par Eric J51
Bonjour, je suis débutant

. J'ai créé un formulaire pour faire des réservations dans un restaurant. Un des champs est l'heure de réservation. Je voudrais contrôler ce champ pour empêcher des rigolos de taper par exemple 26 heure 82. Je voudrais donc limiter ce champ à un format du genre 19:30 et en restant entre 12 et 21 (heures min et max pour une réservation). Pour le champ date j'ai déjà un calendrier qui s'ouvre. Existe-t-il pour l'heure quelque chose de comparable à ce calendrier? D'autres suggestions sont les bienvenues, merci.
Re: Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 16:15
par moogli
salut,
il existe plusieurs possibilités :
- avec [ur=
http://jqueryui.com/l]JQuery UI[/url] tu peux utiliser le controle
datepicker
- Avec HTML 5 tu peux utiliser un champs de type
date ou datetime (datetime à mon avis).
Cela ne t'éviteras pas de vérifier la chose en php, car tu ne peux être certain de ce qui se passe coté client.
pour cela tu peux utiliser pour cela
checkdate peux pratique
ou la classe dateTime et gérer l'erreur
avec getlasterror
@+
Re: Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 16:25
par Invité
Merci pour ton aide. J'ai l'impression de pouvoir contrôler mon format (00:00) en utilisant ( !preg_match('/^([0-9]){1,2}+:([0-9]){1,2}+$/', $hour)), mais je n'ai toujours pas de contrôle sur les valeurs supérieures à 24.
Re: Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 17:18
par moogli
checkdate ou des if sur les valeurs (explode pour séparer une chaine).
Re: Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 17:52
par sam12
A tester:
<?php
$hour= "15:59";
if(preg_match('/^([0-9]){1,2}+:([0-9]){1,2}+$/', $hour))
{
$explode= explode(":", $hour);
$heure= $explode[0];
$minute= $explode[1];
if($heure<1 OR $heure>23 OR $minute<0 OR $minute>59)
{
echo "pas ok";
}
else echo "ok";
}
else echo "prob de format";
?>
Re: Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 20:48
par EricJ51
Merci pour ta proposition, mais malheureusement ça ne marche pas, je peux toujours insérer 26:82 (exemple)
Re: Contrôle d'un champ time() dans un formulaire
Posté : 25 sept. 2012, 21:51
par sam12
Je viens de tester et 26:82 me retourne "pas ok".
Comment tu as intégré ça dans ton code?
Re: Contrôle d'un champ time() dans un formulaire
Posté : 26 sept. 2012, 10:28
par EricJ51
Merci pour ton aide, mais en fait j'ai choisi une autre option: celle de créer un menu déroulant et ça correspond exactement à ce que je veux faire.
Pour ton info, j'avais bêtement fait un copier-coller de ton code, mais en enlevant les lignes "echo", car j'avais un message d'erreur ailleurs.
Résultat peut être vu à
http://www.caboulis.ch/french/test_reserver_php.php
Encore merci et bonne journée.
Re: Contrôle d'un champ time() dans un formulaire
Posté : 26 sept. 2012, 15:40
par sam12
Ça n’empêche pas la vérification, c'est modifiable les listes déroulantes
