Calcul en javascript

Fermé
sajodia Messages postés 38 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 20 novembre 2010 - 12 nov. 2008 à 10:29
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 16 nov. 2008 à 18:38
Bonjour,
je voudrai gérer du matériel en stock.
j'aimmerai qu'il yait :
-un champ pour entrer le nombre d'unité commandées,
-un champ pour entrer le nombre d'unités entrées totales (de la première saisie à la dernière saisie).
-un champ qui donne le le nombre d'unités entrées
-un champ pour donner le numéro i qui s'incrémente
_un champ qui donne le stock réel =le nombre d'unités entrées - le numéro i
-un champ qui dit s'il ya rupture de stock ou pas.Il ya rupture de stock si le type du matériel est<20
sachant que je veux une remise à zero du numero i à chaque fois qu'il ya une nouvelle saisie du nombre d'unités entrées.
Pour cela j'ai écrit un petit script en java:

<HTML>
<HEAD> <TITLE> Exemple 9</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function somme_N_entiers (nb) {
var somme=0;
for (i=1; i <=nb ; i++) {
somme=somme + i ;
document.write("Pour i = ", i, "---> somme = " , somme , "<BR>");
alert (i);
}
return somme;
}
</SCRIPT>
</HEAD>

<BODY>
<H3><CENTER>Somme des N premiers entiers non nuls</CENTER></H3>
<FORM name=formulaire>
<!-- attention, ce qui suit n'est pas une affectation ! -->
Nombre = <INPUT type=text name=nombre value=10>
<INPUT type=button name=bouton value="Calculer"
onClick="formulaire.resultat.value=somme_N_entiers(formulaire.nombre.value)">
Stockreel = <INPUT type=text name=Stockreel value="">
</FORM>
</BODY>
</HTML>
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 nov. 2008 à 13:44
Bonjour,

dans ton formulaire il manque l'input resultat

ensuite ne mets pas document write ça va effacer ton formulaire

<HTML>
<HEAD> <TITLE> Exemple 9</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function somme_N_entiers (nb) {
var somme=0;
for (i=1; i <=nb ; i++) {
somme=somme + i ;
//document.write("Pour i = ", i, " somme = " , somme , "<BR>");
alert ("Pour i = "+i+" somme = "+somme);
}
return somme;
}
</SCRIPT>
</HEAD>

<BODY>
<H3><CENTER>Somme des N premiers entiers non nuls</CENTER></H3>
<FORM name="formulaire">
<!-- attention, ce qui suit n'est pas une affectation ! -->
Nombre = <INPUT type="text" name="nombre" value=10>
Resultat = <INPUT type="text" name="resultat" value="">
<INPUT type="button" name="bouton" value="Calculer" onClick="formulaire.resultat.value=somme_N_entiers(formulaire.nombre.value)">
Stockreel = <INPUT type="text" name="Stockreel" value="">
</FORM>
</BODY>
</HTML>

4
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
12 nov. 2008 à 13:58
Bonjour,
Javascript, pas Java. http://fr.wikipedia.org/wiki/Java_(langage)

Ton code est obsolète. Dans les technologies du web, plus encore que les autres, il faut être à jour !
-> balises en minuscules
-> pas d'attribut langage pour <script>, utilise à la place type avec le type MIME :
type="text/javascript"

-> des guillemets pour tous les attributs, sans exception
-> le name sur le <form> ne sert à rien
-> le premier titre de ta page doit être <h1>, c'est une question de sémantique
-> <center> est dépréciée, utilise à la place une règle CSS

Pour le html, il y en a d'autres. Pense à ajouter un DOCTYPE (je te conseille HTML 4.01 transitional) et à valider ta page : http://validator.w3.org/

Pour le javascript maintenant :
-> éviter le plus possible d'avoir du code Javascript dans le code HTML, c'est une question de facilité de maintenance et de respect des systèmes de mise en cache : il faut que le code Javascript soit dans un fichier externe, lié dans le header comme ceci :
<script type="text/javascript" src="fichier_de_code.js"></script>
Dans le cas présent, on remplace la ligne de code dans le onclick de ton bouton par un simple appel à une fonction, que j'appellerai formclic, fonction qu'on pourra modifier par la suite sans éditer le code HTML.
-> tes méthodes d'accès aux valeurs ne sont pas standards, ce sont des implémentations "à la sauvage" de MSIE. Utilise plutôt les méthodes du DOM comme document.getElementById et autres. Pour faciliter l'accès aux inputs utilisés par le code, on leur rajoute un attribut id.
-> la méthode document.write est totalement obsolète, c'est une hérésie ! Utilise les méthodes de création et d'insertion de nœuds DOM (cf. exemple ci-dessous).



Voilà, j'ai déjà épuré le problème. Pour le reste, je ne comprends pas ce que tu cherches à faire... Donne plus de détails s'il-te-plaît.

#####################################

code HTML :
<!DOCTYPE html
	PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd"
>
<html>
<head>
<title>exemple 9</title>
<script type="text/javascript" src="fichier_de_code.js"></script>
</head>
<body>

<h1>somme des n premiers entiers non nuls</h1>
<form>
	nombre = <input type="text" name="nombre" id="nombre" value="10">
	<input type="button" name="bouton" value="calculer"
		onclick="formclic()">
	stockreel = <input type="text" name="stockreel">
</form>

</body>
</html>

code Javascript :
function somme_n_entiers(nb) {
	var somme = 0;
	for (var i = 1; i <= nb ; i++) {
		somme += i ;
		// création de nœud texte
		var text = document.createTextNode(
			"pour i = " + i + " ---> somme = " + somme
		);
		// ajout du nœud texte
		document.body.appendChild(text);
		alert(i);
	}
	return somme;
}

function formclic() {
	// ???
}


Petit rappel de maths : la somme de n entiers naturels successifs s'obtient par la formule "moyenne des extrêmes * nombre de termes".
n * (max - min) / 2
En partant de 1 ça donne :
Sigma = n * (n - 1) / 2

Si ça peut économiser une boucle for, autant s'en servir. ;)
1
sajodia Messages postés 38 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 20 novembre 2010 2
12 nov. 2008 à 17:10
je cherche à gérer un stock de matériel sur un site web:
j'aimmerai qu'il yait :
-un champ pour entrer à chaque fois le nombre d'unité commandées,
-un champ qui donne le le nombre d'unités entrées
-un champ qui calcule le nombre d'unités entrées totales (de la première saisie à la dernière saisie).
-un champ pour donner le numéro i du formulaire qui s'incrémente
_un champ qui donne le stock réel par type de matériel =le nombre d'unités entrées - le numéro i
-un champ qui donne le nombre de sorties =au numéro du formulaire
-un champ qui donne le nombre de sorties totale depuis le début
-un champ qui dit s'il ya rupture de stock ou pas.Il ya rupture de stock si le type du matériel est<20
sachant que je veux une remise à zero du numero i du formulaire à chaque fois qu'il yaura une nouvelle saisie du nombre d'unités entrées.
chaque formulaire rmplie et validé est considéré comme une sortie.
Merci de m'aider.
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 nov. 2008 à 18:15
Si tu veux faire tout ça, il faut une mémorisation entre chaque saisie de formulaire

donc une base de donnée (Mysql par exemple)
0
sajodia Messages postés 38 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 20 novembre 2010 2
13 nov. 2008 à 08:48
justement j'ai déja créé ma base de donne grace à phpmyadmin avec toutes les tables necessaires,mon formulaire sur html mais j'ai du mal à écrire le script javascript et php
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 nov. 2008 à 18:38
es tu allée voir le site:

www.siteduzero.com ?
0