Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2008, 15h41   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Par défaut Convertion de champs (fonction CDbl())

Bonjour,
Je suis face à un problème dont je ne vois aucune solution pour le résoudre, j'éspère que quelqu'un pourra m'éclairer.

J'ai des valeurs à écrire qui peuvent être soit des valeurs numériques soit des chaines de caractère s(j'utilise un input type='text') .
Lorsqu'on valide, les valeurs s'enregistrent dans ma base de données dans un champ défini comme stockant des chaines de caractères.
L'appli redirige ensuite vers la même page mais affiche également les valeurs qui viennent d'être saisie en affichant en rouge ou en vert les valeurs de type numérique.
Pour cela j'ai deux champs VALMAX et VALMIN j'affiche en vert si la valeur est comprise dedans sinon en rouge. Seulement j'ai un souci lorsque l'utilisateur se trompe et rentre une chaine de caractères au lieu d'une valeur.
Ca enregistre très bien puisque le champ de ma base est de type caractère mais après quand je le transforme en double j'ai un message d'erreur (CDbl(mavariable)). J'ai donc essayé avant de transformer le type de la variable de récupérer ce type et de le modifier uniquement si c'est du numérique. J'utilise la fonction varType(mavariable). Seulement comme dans ma base de données le champs est de type chaine de car, cette fonction me retourne toujours 8, je ne peux donc pas identifier les valeurs...
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 16h11   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 817
Points : 3 011
Points : 3 011
Bonjour,

A mon avis, tu devrais vérifier avant d'enregistrer que la valeur saisie est numérique.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 16h39   #3
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Citation:
Envoyé par pc75 Voir le message
Bonjour,

A mon avis, tu devrais vérifier avant d'enregistrer que la valeur saisie est numérique.
Si c'est le cas, tu peux utiliser ce code javascript qui permet de saisir que des chiffres
Code :
1
2
3
4
5
6
7
8
9
 
<script language="javascript">
function numeric(){
 if(event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
 if(event.which < 45 || event.which > 57) return false;
  if (event.keyCode==60 || event.keyCode==62) event.returnValue = false;
     if (event.which==60 || event.which==62) return false;
} 
 </script>
Code :
1
2
 
<input name="txt" type="text"  onkeypress="numeric()"/>
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 20h20   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 862
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 862
Points : 5 982
Points : 5 982
Salut,

Et pourquoi tu stocks une valeur numérique dans un champ text??

Sinon, il y a
Code :
if isnumeric(maVariable) then
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2008, 19h19   #5
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Merci pour toutes vos réponses.
pc75 et debutantasp, ce n'est pas une mauvaise idée, je testerais ta fonction demain matin!!! car je ne suis pas une pro du javascript..
Immobilis, Je suis obligé de stocker une valeur numérique dans un champ texte car mon application part d'une base déjà existante (base qui n'a pas vraiment été conçue pour être ensuite exploitable). En fait dans les champs il faut remplir la valeur de contrôle a effectuer sur des pièces. Cette valeur peu aussi bien être numérique (ex côte : 2.3 mm) que alphanumérique ( ex bavure : Bon, Mauvais...)
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 09h19   #6
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
debutantasp, juste une petite question, j'aimerai plutôt une fontion qui prenne en paramètre la valeur à contrôler, si j'appel ma fonction numeric(maVariable) au lieu de mettre event.keyCode il faut mettre maVariable.keyCode ?
Merci
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 10h33   #7
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 154
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2008
Messages : 154
Points : 35
Points : 35
Finalement j'ai utilisé la fonction isnumeric de Immobilis, ça va très bien, il me suffit d'ajouter
Code :
tst=Replace(val,".", ",")
pour etre sur que si l'utilisa tape 3.2 au lieu de 3,2 le traitement se fasse. Merci beaucoup
noakiss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h57.


 
 
 
 
Partenaires

Hébergement Web