Bonjour,
Je cherche a faire un masque de saisie, en php, pour une date dans une textbox.
Merci d'avance! :)
Version imprimable
Bonjour,
Je cherche a faire un masque de saisie, en php, pour une date dans une textbox.
Merci d'avance! :)
Salut,
Un masque de saisie se fait généralement en JavaScript. Sinon coté PHP, il s'agit plus de validation des données.
Resterait à savoir quel type de données, et quel type de masque tu veux appliquer..
A+
Ca serait juste pour : quand la personne va saisir, elle est dans la textbox un truc du style : jj/mm/aaaa et que quand le curseur est sur la textbox date, elle est juste a tapé les chiffres de la date sans qu'elle est à taper les " / " ni meme à enlever les jj ,mm, aaaa.
ou bien un masque où il y a que : // et qu'elle est que les chiffre a rentrer.
Voila, je sais pas si tu vois ce que je veux dire lol ???
Oui je vois tout à fait :)
Mais le mieux pour les dates ce sont les combobox, c'est plus convivial !
Tu peux faire ça en JavaScript...
Désolé j'ai pas le temps de faire le code pour toi :) Bonne chance !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <script language="JavaScript"> function onFocusDate(leChampDate) { if(this.value == "jj/mm/yyyy") this.value = ""; } function onBlurDate(leChampDate) { if(this.value == "") this.value = "jj/mm/yyyy"; } function onKeyUpDate(leChampDate) { // Ici tester à chaque fois si le chiffre entrée est valable pour la position en cours. } </script> <form name="nomForm" action="unepage.php" method="POST"> <input type="text" name="dateForm" value="jj/mm/yyyy" onFocus="onFocusDate(this);" onBlur="onBlurDate(this);" onKeyUp="onKeyUpDate(this);"> </form>
Bonjour,
tu fais 3 textbox (2 de size=2 et une de size=4), tu teste par javascript que tes textbox sont bien remplies puis tu envoie par post ou get. Tu test avec php tes valeurs, tu les recuperes et apres :
Code:
1
2 $date = $valeur_jour."/".$valeur_mois."/".$valeur_annee;
Merci bcp, pas grave ten fait pas, je vais pas tout te demander non plu, c gentil de m'avoir aidé déjà lol
a bientot
PS : sur le forum il a déjà été traité le problème de la validation de Date en Javascript, et des méthodes interessantes ont étés évoquées : tu pourras t'en servir pour tester ta date, une d'entre elle par exemple consiste à créer un objet Date à chaque fois, pour vérifier que la date entrée est correcte :)
A+
dsl :oops: mais j'ai a peine manipulé du javascript et donc je capte pas tout lol
je sais pas si tu es encore là, sinon c'est pas grave, ca peut attendre demain.tu pe m'expliquer vite fait le code que tu as marqué (onblur onfocus) et je capte pas le onKeyUp !
?? Merci
J'ai bien vu ton message Yiannis, mais ce n'est pas exactement ce que j'ai demandé, ca je les fai pour autre chose lol
ce que j'ai demandé, c'est quand l'utilisateur va vouloir saisir sa date, je voudrai qu'il n'est pas a marqué les / /, je voudrais qu'il rentre juste les chiffres, et que les / / ne disparaisse pas ou ne se décale pas !!
Le onKeyUp est un évènement déclenché quand une personne appuie sur une touche ( une lettre par exemple ) et relache la touche.
Ca te permet d'intercepter l'entrée d'un chiffre.
Tu testes donc dans la fonction onKeyUpDate qu'il s'agit bien d'un chiffre. Puis que c'est un chiffre possible ( par exemple, pour jj dans jj/mm/aaaa le premier chiffre doit être entre 0 et 3 inclu.. ) puis une fois que tu as validé que le chiffre est correcte, tu réécris le champ donc tu fais quelque chose comme ça :
Je n'écris pas le contenu, j'ai pas le temps;Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 function onKeyUpDate(leChampDate) { var thisValue = leChampDate.value; // On récupère la valeur du champ // On test si le dernier champ entré est bien un chiffre. if( thisValue.charAt(thisValue.length - 1) * 1 != NaN) { // Le champ est bien un chiffre [...] } else { // Le champ n'est pas un chiffre [...] } }
Ensuite, tu testes si le chiffre est dans la bonne fourchette pour la position, et si c'est le cas, tu réécris le champs, en ajoutant un / si nécessaire.
Cas idéal :
La personne écrit "4"
Ce n'est pas valide pour le premier j de jj/mm/aaaa : on vide le champ.
La personne écrit "3"
Ca marche, on garde le 3
La personne écrit "5"
Ce n'est pas valide pour le deuxieme j de jj/mm/aaaa : on garde le 3 mais on enlève le 5.
La personne écrit "1"
c'est ok : on écrit donc "31/" et la personne continue à taper après
Et voila.