IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[débutant]Effectuer un calcul via deux champs textes


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut [débutant]Effectuer un calcul via deux champs textes
    Bonjour!!

    Bon mon problème va vous paraitre extrêmement simple mais je ne suis qu'un pauvre petit débutant e java web

    Alors explications :

    Je dispose d'une page jsp sur laquelle j'affiche des infos dans des champs textes :
    ces infos sont :
    quantité : à remplir par l'utilisateur
    Prix : passé en paramètre d'une autre jsp, affiché dans un champ texte non modifiable.

    Ce que je voudrais faire, c'est rajouter un champ total qui affiche (vous l'aurez compris) quantité*prix. Et ce qui serais encore mieux c'est que ce champs s'actualise à chaque modification de "quantité" par l'utilisateur. J'ai pensé tout d'abord à utilisé une servlet qui fasse ce calcul, mais premièrement ça me fait un peu trop penser à l'utilisation d'un marteau piqueur pour enfoncer un clou, et de plus étant donné que je ne sais pas comment appeler une servlet autrement que via un formulaire/bouton submit, cela m'impose l'ajout d'un formulaire (alors que j'en ai déjà un...)

    Bon pour plus de compréhension voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ page import="com.model.Mag.Panier" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Commande</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Style" href="Style.css" />
    </head>
    <body>
    	<form action="Ajout" method="post">
     
    			<h2>Commande de produits</h2>
     
    			<p>Quantité : <input type="text" name="Quantite" value="1"/><br />
    			prix : <input type="text" name="Prix" value=<%out.print(request.getParameter("Prix")); %> readonly="true"/>		
    			Prix total : <input type="text" name="total" value=
    			<%
    			int quant=Integer.parseInt(Quantite); 
    			int prix=Integer.parseInt(Prix);
    			out.print(quant * prix);
    			%>/></p>
    			<input type="submit" name="valider" value="commander"/>
     
    	</form>
     
    </body>
    </html>
    Vous pouvez remarquer que j'ai vaguement tenté un petit quelque chose en ajoutant du java mais premièrement ça ne prend pas en compte l'actualisation de mon champ, et deuxièmement java ne prend pas les nom des champs comme des variables... c'est plus pour illustré la façon dont je voudrais procéder que pour autre chose quoi ^^

    Bon bah voilou, a vos clavier!!! et merci d'avance pour les réponses!!!

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    Javascript est tout indiqué dans ton cas

    A ton moteur de recherche!!!

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Merci de votre indication, effectivement après quelques recherches javascript semble être le mieux indiqué pour ce que je fait...

    j'ai donc introduit dans mon code une petite fonction javascript que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Commande</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Style" href="Style.css" />
    </head>
    <body>
    	<form name="form" action="Ajout" method="post">
     
    			<h2>Commande de produits</h2>
     
    			<p>Quantité : <input type="text" name="Quantite" value="1" onBlur="calculTotal(this)"/><br />
    			prix : <input type="text" name="Prix" value=<%out.print(request.getParameter("Prix")); %> readonly="true"/>		
    			Prix total : <input type="text" name="Total"/></p>
    			<input type="submit" name="valider" value="commander"/>
     
    	</form>
     
    <script language="javascript">
    function calculTotal(champ)
    {
    document.form.elements["Total"].value = champ.value * document.form.elements["Prix"].Value;
    }
    </script>
    </body>
    </html>
    Par contre petit problème toutefois, le calcul ne s'effectue pas, le champs Total ne m'affiche pas un nombre mais NaN (not a number)... je suppose que je doit avoir un problème dans ma fonction javascript (j'ai un formidable esprit de déduction ) mais je ne vois point lequel...

    ps: cette question n'a du coup peut être plus grand chose à faire ici... merci de me le dire par mp si c'est le cas ^^

  4. #4
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    En effet tu trouveras plus d'aide dans la section Javascript du forum

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 526
    Points
    9 526
    Billets dans le blog
    1
    Par défaut
    Voici un exemple qui fonctionne, je te laisse adapter...
    (j'ai mis des Float pour montrer un cas un peu plus compliqué)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Commande</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Style" href="Style.css" />
    </head>
    <body>
        <form name="form" action="Ajout" method="post">
     
                <h2>Commande de produits</h2>
     
                <p>Quantité : <input type="text" name="Quantite" value="1" onBlur="calculTotal()"/><br />
                prix : <input type="text" name="Prix" value="150.39" readonly="true"/>        
                Prix total : <input type="text" name="Total"/></p>
                <input type="submit" name="valider" value="commander"/>
     
        </form>
     
    <script language="javascript">
    function calculTotal()
    {
        var t = parseFloat(document.form.elements["Quantite"].value) * parseFloat(document.form.elements["Prix"].value);
        document.form.elements["Total"].value = t.toFixed(2);
    }
    </script>
    </body>
    </html>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    effectivement mon problème était la!!!! J'aurais du m'en douter en même temps... les champs des inputs sont des strings et multiplier des strings entre eux il y a peu de chance que cela donne quelque chose ^^

    et bien merci a vous de vos indications!! et a bientôt (surement )

    A locké, résolu, toussa toussa

    edit : en plus j'avais bien fait la conversion string->int dans mon premier exemple en java, mais tout le reste était faut ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Noobie]Calcul entre deux champs datetime
    Par bigltnt dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/07/2007, 10h37
  2. [Perl/Tk] scrollbar pour deux champs textes
    Par VinnieMc dans le forum Modules
    Réponses: 2
    Dernier message: 10/03/2007, 16h48
  3. Comment effectuer un calcul entre deux champs
    Par Pitchoune557 dans le forum IHM
    Réponses: 3
    Dernier message: 22/02/2007, 11h48
  4. calcul entre deux champs dans une table
    Par pomar dans le forum Access
    Réponses: 7
    Dernier message: 29/11/2006, 18h27
  5. Réponses: 5
    Dernier message: 15/09/2006, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo