Numérique dans Balise <INPUT TYPE='TEXT'> + PHP

Numérique dans Balise <INPUT TYPE='TEXT'> + PHP - PHP - Programmation

Marsh Posté le 02-10-2006 à 15:24:29    

Dans un formulaire HTML une de mes balises <INPUT TYPE='TEXT' METHOD='POST'> doit retourner uniquement du numérique.
Je teste ensuite les valeurs du tableau $_POST pour verifier le type de données et quelque soit ma saisie il me renvoie un type string.
Comment faire pour tester si c'est du numèrique ou de l'alpha-numérique ?

Reply

Marsh Posté le 02-10-2006 à 15:24:29   

Reply

Marsh Posté le 02-10-2006 à 15:57:18    

horlin a écrit :

Dans un formulaire HTML une de mes balises <INPUT TYPE='TEXT' METHOD='POST'> doit retourner uniquement du numérique.
Je teste ensuite les valeurs du tableau $_POST pour verifier le type de données et quelque soit ma saisie il me renvoie un type string.
Comment faire pour tester si c'est du numèrique ou de l'alpha-numérique ?


 
ce comportement est normal car <input type="text"/> renvoie une string. Pour tester, tu peux utiliser les expressions régulières.

Reply

Marsh Posté le 02-10-2006 à 16:06:53    

Les forumaires PHP retournent TOUJOURS du string.
 
Je te conseillerais de tester AVANT le submit, via JavaScript, que le nombre est bien du numérique, grâce à la fonction IsNaN() :  
http://www.devguru.com/Technologie [...] isnan.html
 
un truc du genre
 

Code :
  1. <form action="..." method="post" onsubmit="return CheckNaN(this)">
  2. <input type="text" name="monchamp">
  3. <input type="submit" value="Soumettre">
  4. </form>


 
(au fait, le "method" se place au niveau de la balise "form", pas de l' "input"...)
 
et la fonction JS est simple (à placer dans une balise "script" dans le head)
 

Code :
  1. function CheckNaN(myform)
  2. { if (isNaN(myform.monchamp.value)) return false
  3.   else return true
  4. }


 
Le formulaire ne sera pas soumis (return false) si la condition isNaN est remplie, c'est-à-dire si la valeur n'est pas un nombre ...  
 
Tu peux customiser même la fonction JS avec un window.alert().

Message cité 1 fois
Message édité par ZeBix le 02-10-2006 à 16:11:02
Reply

Marsh Posté le 02-10-2006 à 16:11:02    

ZeBix a écrit :

Je te conseillerais de tester AVANT le submit, via JavaScript, que le nombre est bien du numérique, grâce à la fonction IsNaN() :


Yeaaah right [:mlc] ... Comme ça si le visiteur a pas le js activé ou si il y une erreur dans le js, le contrôle n'est pas fait est tout se pète la figure !!!
Ce genre de contrôle en js n'est envisageable que pour améliorer l'érgonomie et eviter un aller-retour de l'information vers le serveur, mais de toute façon, il faut quand même le faire APRES le submit!

Reply

Marsh Posté le 02-10-2006 à 16:15:01    

anapajari a écrit :

Yeaaah right [:mlc] ... Comme ça si le visiteur a pas le js activé ou si il y une erreur dans le js, le contrôle n'est pas fait est tout se pète la figure !!!
Ce genre de contrôle en js n'est envisageable que pour améliorer l'érgonomie et eviter un aller-retour de l'information vers le serveur, mais de toute façon, il faut quand même le faire APRES le submit!


 
Vrai, n'empêche que ne pas exécuter de contrôle côté client, c'est de la progra préhistorique.
 
Bref, horlin, fais les deux :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed