Besoin d'aide pour les + et -

Résolu
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009 - 30 avril 2005 à 11:05
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 - 2 mai 2005 à 23:46
Bonjour, j'ai un probleme comme vous pouvez vous en douté, mais je sais, le titre du sujet est pas bien !



En fait, je voudrais faire un truc avec un nombre de point inital et
que l'on ne peut pas changer et plusieur bouton + et - qui baisse ou
"augmente" (elle ne doit pas dépasser la valeur initial).



Lorsque l'on ajoute, ca baisse la valeur et lorsque l'on enlève c'est augment la valeur.

En fait, c'est plusieur champ qui doivent avoir des point et lorsque
l'on met un point, ca baisse la valeur initial de 1. Et il faudrait
aussi que à la fin, l'utilisateur valide et je doit pouvoir recupérer
ces champs.



Merci de m'aider et j'espère que vous avez compris mon pb sinon dites le moi et j'essaiyerais d'être plus clair!



Merci et A++

7 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
2 mai 2005 à 23:46
Salut!

Je ne suis pas certain d'avoir tout compris mais si ton problème #1 est le IF dans la fonction valid, c'est que tu essais de comparer la valeur d'un élément de formulaire et l'attribut .value, retourne une chaîne de caractères donc la comparaison s'effectue de gauche a droite caractère par caractère. Il faut convertir en nombre pour comparer des nombres. On peut utiliser la fonction parseInt ou ici dans ton cas on est certain que la valeur est numérique alors on peut utiliser un eval().

Le problème #2 c'est problablement un problème d'utilisation trop fréquente de drogue

Si il se passe rien après le boutton alert c'est que tu ne fait rien. Si tu veux que le résultat soit envoyé a ton php, il faut faire un submit du formulaire.


function valid(form)
{
if (eval(form.max.value) < eval(form.total.value)) alert("Vous avez entrer " + form.total.value + " points alors que la limite est de " + form.max.value);
else
{
alert("Repartition de vos points : \n Attaque : " + form.attaque.value + "\n" + "Defense : " + form.defense.value + "\n" +"Vitesse : " + form.vitesse.value + "\n"+"Perception : " + form.perception.value + "\n" + "Ki : " + form.ki.value + "\n" + "Vie :" + form.vie.value*80 );
form.submit();
}
}

A+, Ghislain
3
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
30 avril 2005 à 17:42
Salut!

Voici un exemple :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<STYLE type= "text/css">
. nombre {text-align:right;}
.plusMoin {width:25px;font-weight:bold;}
</STYLE>
<SCRIPT type ="text/javascript">
function changeValeur(nbr,val)
{
t = eval(nbr.value);
if (nbr.valeurInitial==null) nbr.valeurInitial = t;
t = t + val;
nbr.value = t<=nbr.valeurInitial?t : nbr.value;
}
function valid(laValeur)
{
alert(laValeur);
}
</SCRIPT>
</head>

<form action ="">

</form>

</html>



A+, Ghislain
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
30 avril 2005 à 19:16
re, j'ai esasyer d'adapté mon script à la situation mais j'ai été totalement perdu ! je suis désolé !



En fait, moi j'ai plusieur champs (Attaque, Defense etc ..) et je veux
quand on ajoute un + dans attaque, ca fasse moins -1 au point totaux et
+ 1 au point de defense !



Merci de m'aider car j'ai été totalement pommé !!



A++
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
30 avril 2005 à 20:24
Salut!

Fallait le dire plus tôt


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<STYLE type= "text/css">
. nombre {text-align:right;}
.plusMoin {width:25px;font-weight:bold;}
</STYLE>
<SCRIPT type ="text/javascript">
function changeValeur(nbr,val)
{
t = eval(nbr.value);
if (nbr.valeurInitial==null) nbr.valeurInitial = t;
t = t + val;
if (t>nbr.valeurInitial) return;
nbr.value = t;
if (nbr.name != "total") changeValeur(document.forms[0].total,val)
}
function valid(form)
{
alert("attaque : " + form.attaque.value + "\r" +"defense : " + form.defense.value + "\r"+"unautre : " + form.unautre.value + "\r"+"pisunautre : " + form.pisunautre.value+ "\r"+"total : " + form.pisunautre.total);
}
</SCRIPT>
</head>

<form>

</form>

</html>

A+, Ghislain
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
30 avril 2005 à 22:01
Excuse moi mais je suis tres nul en javascript et ce que tu m'a donné ne marche pas !



Lorsque je fait + au attaque et defense ca marche pas lorsque elle sont
à 0 ! quand elle sont négative, ca marche ! Il faudrait que quand je
fait + à l'attaque il y ait + à l'attaque mais - au totale et pareil
pour les autres !



Il faut aussi que le total soit compris entre 0 et sa valeur max
(donné au debut) et les autres ne doivent pas être negative non plus !



Dsl de ne pas l'avoir dis plus tot !



A++
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
30 avril 2005 à 23:10
Salut!

Pas certain d'avoir compris!

Le seul problème que je vois c'est le montant qui tombent en négatif. Pour régler ça, tu dois changer la fonction comme ceci :


function changeValeur(nbr,val)
{
t = eval(nbr.value);
if (nbr.valeurInitial==null) nbr.valeurInitial = t;
t = t + val;
if (t>nbr.valeurInitial || t<0) return ;
nbr.value = t;
if (nbr.name != "total") changeValeur(document.forms[0].total,val)
}

A+, Ghislain
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
2 mai 2005 à 14:30
Salut, j'ai trafiqué le script pour l'adapté à mon truc, la plupart du script marche





<html>

<!-- Date de création: 30/04/2005 -->

<head>

<style type="text/css">

.nombre {text-align:center;}

.plusMoin {width:25px;font-weight:bold;background-color:red}

</style>

<SCRIPT type="text/javascript">

function changeValeur(nbr,val)

{

t = eval(nbr.value);

if (nbr.valeurInitial==null) nbr.valeurInitial = t;

t = t + val;

if (t < nbr.valeurInitial) return;

nbr.value = t;

if (nbr.name != "total") changeValeur(document.forms[0].total,val)

}

function valid(form)

{

if (form.max.value < form.total.value) alert("Vous avez entrer " + form.total.value + " points alors que la limite est de " + form.max.value);

else

alert("Repartition de vos points : \n Attaque : " + form.attaque.value
+ "\n" + "Defense : " + form.defense.value + "\n" +"Vitesse : " +
form.vitesse.value + "\n"+"Perception : " + form.perception.value +
"\n" + "Ki : " + form.ki.value + "\n" + "Vie :" + form.vie.value*80 );

}

</SCRIPT>

</head>



<form action="bonus.php?action=ajout&nom='.$_GET['nom'].'" method="post">

Attaque :


Defense :


Vitesse :


Perseption :


Ki :


Vie :(1 point vaut
80 point de vie)


"
type="hidden">







</form>



</html>



J'ai 2 problème !

1- La comparaiseon ne se fait pas ! je ne comprend pas pourquoi

2- Si ca affiche les point que j'aéi ajouter avec Alert et quze c'est bon et que je clique sur OK il se passe rien !



Je suis perdu ! Merci de me répondre





A++
0
Rejoignez-nous