Contrôle de formulaire - Erreur de calcul "plus grand que"
cyrano359
Messages postés1Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention 7 janvier 2005
-
7 janv. 2005 à 04:44
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
7 janv. 2005 à 09:55
Salut à toutes et tous !
Je débute et je rame grave !
C'est pas faute de chercher mais encore faut-il mettre les bons mots-clés... et mes recherches demeurent infructueuses
Je m'explique :
J'ai une liste déroulante dans un formulaire qui permet de choisir une quantité de 1 à 10.
Je contrôle avec Javascript que la valeur de ce champ de formulaire ne soit pas supérieure au stock disponible en incluant la valeur dynamique renvoyée par php.
La mauvaise surprise est que si la fonction php indiquant le stock disponible renvoie une valeur de 8, et que je commande 10, je n'ai pas de message d'alerte !
Le système ne semble prendre en compte que le premier caractère de la chaîne, soit 1, qui est inférieur à 8.
J'ai essayé avec 08 et là ça marche, mais...
Si le stock est de 110, et que je commande 9, le message d'alerte apparaît car 9 est supérieur au premier caractère de la chaîne soit 1 (et à 0 si je met 0 devant cette variable de stock).
Voilà mon script :
<script language="javascript">
function champsok()
{
if (document.formulaire.Date.value=="") {
alert("Veuillez sélectionner une DATE valide, svp !");
return false;
}
else if (document.formulaire.NbPlaces.value=="") {
alert("Veuillez indiquer le NOMBRE DE PLACES souhaitées !");
return false;
}
else if ((document.formulaire.Date.value=="2005-02-05")&
amp;&(document.formulaire.NbPlaces.value>"
<?
// information pour la connection à la DB
$host = 'host';
$user = 'user';
$pass = 'pass';
$db = 'db';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$a = 80;
$resultat=mysql_query ("select sum(NbPlaces) as somme_totale from location where Date='2005-02-05'") or die ("Requete impossible");
{
echo ($a - mysql_result($resultat,$i,somme_totale));
}
?>
"))
{
alert("NOMBRE DE PLACES trop élevé !\n\nIl reste seulement
<?
// information pour la connection à la DB
$host = 'localhost';
$user = 'user';
$pass = 'pass';
$db = 'db';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$a =80;
$resultat=mysql_query ("select sum(NbPlaces) as somme_totale from location where Date='2005-02-05'") or die ("Requete impossible");
{
echo ($a - mysql_result($resultat,$i,somme_totale));
}
?>
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 7 janv. 2005 à 09:55
Bonjour,
parce que les champs sont traités comme des "string"
et pas comme des nombres.
plusieurs solutions, utiliser :
Number(champ) ou parseInt(champ,10) ou ...
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~