Probleme de variables

Signaler
Messages postés
67
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
27 avril 2013
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,

Je débute en javascript. Dans le cadre d'un stage je suis en train de
faire un ptit script en javascript qui fait des calcul en récupérant
des variables php dans des champs cachés.

donc voici mon script :


<SCRIPT LANGUAGE="javascript">


function traiter(){

var quantite=parseFloat(document.calculprix.quantite.value);

var quantite1=parseFloat(document.calculprix.quantite1.value);

var quantite2=parseFloat(document.calculprix.quantite2.value);

var quantite3=parseFloat(document.calculprix.quantite3.value);

var quantite4=parseFloat(document.calculprix.quantite4.value);

var quantite5=parseFloat(document.calculprix.quantite5.value);

var quantite6=parseFloat(document.calculprix.quantite6.value);

var prix1=parseFloat(document.calculprix.prix1.value);

var prix2=parseFloat(document.calculprix.prix2.value);

var prix3=parseFloat(document.calculprix.prix3.value);

var prix4=parseFloat(document.calculprix.prix4.value);

var prix5=parseFloat(document.calculprix.prix5.value);

var prix6=parseFloat(document.calculprix.prix6.value);


if((quantite > quantite1) && (quantite < quantite2)){

  document.calculprix.prix.value=parseFloat(document.calculprix.prix1.value);

}

if((quantite > quantite2) && (quantite < quantite3)){

  document.calculprix.prix.value=prix2;

}

if((quantite > quantite3) && (quantite < quantite4)){

  document.calculprix.prix.value=prix3;

}

if((quantite > quantite4) && (quantite < quantite5)){

  document.calculprix.prix.value=prix4;

}

if((quantite > quantite5) && (quantite < quantite6)){

  document.calculprix.prix.value=prix5;

}

if((quantite > quantite6) && (quantite < 100000000)){

  document.calculprix.prix.value=prix6;

}

}

</SCRIPT>


et voici mes champs:

">

">

">

">

">

">

">

">

">

">

">

">


Mon champ d'entrée:



et mon champ d'affichage:



Donc mon gros problème c'est qu'au lieu d'afficher ma variable il affiche NaN.

Donc je pense qu'il doit y avoir un probleme au niveau de la
reconnaissance de mes variables mais la ça arrive au bout de mes
capacité.

Donc si quelqu'un a un tuto ou une explication je suis preneur.

merci d'avance.

10 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

    comme nous on ne peut pas deviner ce qu'il y a dans les $data['je ne sais quoi']....

    mais tu as des variables prix# du même nom que les champs ....
    j'ai mis texte pour voir, ajouté form, mis n'importe quoi dans les values..
       pffff. pas 2 fois !
    dans une question avascript, mettre la page générée,
       avec juste ce qu'il faut. pas plus, mais tout.

var prix1= parseFloat(document.calculprix.prix1a.value);
var prix2=parseFloat(document.calculprix.prix2a.value);
var prix3=parseFloat(document.calculprix.prix3a.value);
var prix4=parseFloat(document.calculprix.prix4a.value);
var prix5=parseFloat(document.calculprix.prix5a.value);
var prix6=parseFloat(document.calculprix.prix6a.value);

<form name="calculprix">
...

</form>

au fait :







o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o 
| Avec | et mieux : <label style ="color: rgb(0, 128, 0);">Télécharger</label> | 
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|<label style="color: rgb(128, 0, 0);">FireFox</label> |regarder la "console d'erreurs" | FireBug
| | Outils / Console d'erreurs | | 
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|<label style="color: rgb(128, 0, 0);">Internet Explorer</label>|activer le deboggage : utils/options Ile Debogger IE | 
| | dans la liste, sous "Navigation" : décocher | | 
| | ° Afficher une notification de chaque erreur de script | | 
| | ° Désactiver le débogage de Scripts (autres applications)| | 
| | ° Désactiver le débogage de Scripts (Internet Explorer) | | 
o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o



          ça aide.. un peu...




<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
6
Bonjour, je viens aussi de faire le test, et donc, l'érreur doit très probablement être dans le php, parce qu'en y mettant des valeurs numérique à la place des <?php... ?> pas de problème

il est vrais que sans le code, c'est rude ... très rude , comme le signale à chaque fois Bultez et tant d'autre.

A croire que Bultez à un modèle de message ;o)

[o-_-o]
Messages postés
67
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
27 avril 2013

Désolé pour le désagrément.
En fait au lieu de me donner une valeur dans la fenetre d'affichage celà me met NaN.
J'ai essayé de mettre eval() au lieu de parsefloat() et du coup j'ai undefined .
Mais pas moyen d'avoir mes variables qui sont en faits des nombres avec décimales.
Car si je met des nombre entier le script fonctionne.
Donc je pense que j'ai du me planter à un endroit et il doit planter car il execute des operation avec des string au lieu de nombres.
Donc si vous voyez quelque chose je suis preneur .
Et si vous avez un tuto sur le fonctionnement du debugger cité plus haut je prend aussi.
Merci d'avance.
Messages postés
243
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
2
Salut
J'ai essayé de donner des valeurs aux champs hidden et ça marche, le problème doit etre de ton code php
Messages postés
243
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
2
On peut voir ton array $data ?
Messages postés
67
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
27 avril 2013

Le probleme c'est c'est pas un array proprement dit c'est le résultat d'une requète sql.
T'as eu une réponse en méttant des nombre à virgule ? Car chez moi c'est ça qui coince.
Car sinon ca marche.
Messages postés
243
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
2
il ne faut pas mettre des virgules mais des points
Messages postés
67
Date d'inscription
mercredi 6 décembre 2006
Statut
Membre
Dernière intervention
27 avril 2013

Ce sont des points.Mais le truc qui est dingue c'est que si je regarde mon code source il y a ce qu'il faut dedans donc je pense que c'est une erreur de définition dans les variables javascript non ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
mais enfin... vous n'avez pas vu/lu ?
je me cite :

tu as des variables prix# du même nom que les champs ....


j'ai fais :
var prix1=parseFloat(document.calculprix.prix1a.value);...
               
...
et tout baigne ( sauf si ce qu met le php est faux )



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
<script type="text/javascript">
function traiter(){
var prix1=parseFloat(document.calculprix.prix1a.value);
var prix2=parseFloat(document.calculprix.prix2a.value);
var prix3=parseFloat(document.calculprix.prix3a.value);
var prix4=parseFloat(document.calculprix.prix4a.value);
var prix5=parseFloat(document.calculprix.prix5a.value);
var prix6=parseFloat(document.calculprix.prix6a.value);
var quantite=parseFloat(document.calculprix.quantite.value);
var quantite1=parseFloat(document.calculprix.quantite1.value);
var quantite2=parseFloat(document.calculprix.quantite2.value);
var quantite3=parseFloat(document.calculprix.quantite3.value);
var quantite4=parseFloat(document.calculprix.quantite4.value);
var quantite5=parseFloat(document.calculprix.quantite5.value);
var quantite6=parseFloat(document.calculprix.quantite6.value)
if((quantite > quantite1) && (quantite < quantite2)){
  document.calculprix.prix.value=parseFloat(document.calculprix.prix1.value);
}
if((quantite > quantite2) && (quantite < quantite3)){
  document.calculprix.prix.value=prix2;
}
if((quantite > quantite3) && (quantite < quantite4)){
  document.calculprix.prix.value=prix3;
}
if((quantite > quantite4) && (quantite < quantite5)){
  document.calculprix.prix.value=prix4;
}
if((quantite > quantite5) && (quantite < quantite6)){
  document.calculprix.prix.value=prix5;
}
if((quantite > quantite6) && (quantite < 100000000)){
  document.calculprix.prix.value=prix6;
}
}
</script>
<form name="calculprix">

</form>

sans préjuger du résultat...

>>si vous avez un tuto sur le fonctionnement du debugger :

http://www.javascriptfr.com/tutoriaux/DEBOGAGE-AVEC-INTERNET-EXPLORER_469.aspx
un début d'explication pour celui dIE.

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />