Probleme etrange html/javascript/php

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Probleme etrange html/javascript/php

Message le Jeu Juin 28, 2007 6:45

Bonjour,
Dans l'appli que je suis en train de créer je tombe sur un os.
J'ai fais un ptit script en javascript qui fonctionne nickel (durant mes testes).
Il utilise des champs de formulaire cachés . Et c'est la que ça coince.
Car en fait durant mes testes j'avais mis des valeur numériques pour le debuggage et tout allait bien. Mais l'utilité de ce script et de récupérer des variables php venant d'une BDD et donc j'y met mes variables ça ne fonctionne plus.
Je précise que mes variables sont bonnes et qu'en plus si l'on regarde le code source on voit en clair mes valeurs venant de la BDD.
Donc si vous avez une idée je suis preneur.


Kaliiii
WRInaute impliqué
WRInaute impliqué
 
Messages: 603
Inscription: 2 Mar 2005

Message le Jeu Juin 28, 2007 7:39

Peut etre une simple erreur de synthaxe non ?

On peut voir le code ? sinon on va pas pouvoir aider ...

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Message le Jeu Juin 28, 2007 8:30

Voici le code de mon script:
Code: Tout sélectionner
<SCRIPT LANGUAGE="javascript">

function traiter(){
var quantite=document.calculprix.quantite.value;
var quantite1=document.calculprix.quantite1.value;
var quantite2=document.calculprix.quantite2.value;
var quantite3=document.calculprix.quantite3.value;
var quantite4=document.calculprix.quantite4.value;
var quantite5=document.calculprix.quantite5.value;
var quantite6=document.calculprix.quantite6.value;
var prix1=document.calculprix.prix1.value;
var prix2=document.calculprix.prix2.value;
var prix3=document.calculprix.prix3.value;
var prix4=document.calculprix.prix4.value;
var prix5=document.calculprix.prix5.value;
var prix6=document.calculprix.prix6.value;

if((quantite > quantite1) && (quantite < quantite2)){
  document.calculprix.prix.value=prix1;
}
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>


mes champs cachés :
Code: Tout sélectionner
<input type="hidden" name="quantite1" value="<?php echo $data['quantite1']; ?>">
<input type="hidden" name="quantite2" value="<?php echo $data['quantite2']; ?>">
<input type="hidden" name="quantite3" value="<?php echo $data['quantite3']; ?>">
<input type="hidden" name="quantite4" value="<?php echo $data['quantite4']; ?>">
<input type="hidden" name="quantite5" value="<?php echo $data['quantite5']; ?>">
<input type="hidden" name="quantite6" value="<?php echo $data['quantite6']; ?>">
<input type="hidden" name="prix1" value="<?php echo $data['prix1']; ?>">
<input type="hidden" name="prix2" value="<?php echo $data['prix2']; ?>">
<input type="hidden" name="prix3" value="<?php echo $data['prix3']; ?>">
<input type="hidden" name="prix4" value="<?php echo $data['prix4']; ?>">
<input type="hidden" name="prix5" value="<?php echo $data['prix5']; ?>">
<input type="hidden" name="prix6" value="<?php echo $data['prix6']; ?>">


mon champ de saisie :
Code: Tout sélectionner
<input type="text" name="quantite" onchange="traiter();">


et le champ d'affichage :
Code: Tout sélectionner
<td><input type="text" name="prix">


Tous mes champs de formulaire sont dans un formulaire nomé calculprix.

Mais ce qui me fais bizar c'est que si tu remplace les <?php $data['...']; ?> pas des valeur numérique le script fonctionne.Et que si tu regarde le source ces variables sont des identités numériques.

Mes champs de saisie étaient au début en des balises php (donc avec les variables adaptées) et je les ai sorties pour voir si ça changeait quelque chose mais non en fait.

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Juin 28, 2007 9:17

bonjour,

déjà, tu devrais utiliser des id="" et des document.getElementById('') plutot que d'appeler les elements par leur nom, et tu ne traite pas les cas ou quantite vaut exactement quantite2, quantite 3 etc, ni <=quantite1...

si une de tes valeurs n'est pas renseignée, tu vas te prendre une erreur javascript, il faudrait voir quelle erreur tu obtiens dans ton test...

hormis ces cas (quantite= quantite1 ou 2 ou 3 etc et toutes les valeurs renseignées) , ça devrait fonctionner si ton formulaire a bien name="calculprix"


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Jeu Juin 28, 2007 10:10

regarde peut être du coté de parseFloat() parseInt() pour caster ta value qui doit être du type String

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Message le Jeu Juin 28, 2007 10:44

le probleme est que le script ne veut pas de mes valeurs php .
Pour les conseils sur les autres points je vous remercie mais rien n'est débuggé encore.

bozoleclown
WRInaute impliqué
WRInaute impliqué
 
Messages: 893
Inscription: 24 Nov 2005

Message le Jeu Juin 28, 2007 11:23

et en enlevant les ' ' ?

en gros passer de
<?php echo $data['quantite1']; ?>
à
<?php echo $data[quantite1]; ?>

NextGeneration
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 428
Inscription: 27 Sep 2006

Message le Jeu Juin 28, 2007 12:02

bozoleclown a écrit:et en enlevant les ' ' ?

en gros passer de
<?php echo $data['quantite1']; ?>
à
<?php echo $data[quantite1]; ?>


Ca va faire :

Notice : undefined constant quantite1, assumed 'quantite1'

Ce qui veut dire que t'utilises une constante quantite1 que tu n'as pas définie, et comme php comprend que tu sais pas coder, il corrige à ta place.

Autre exemple :

echo Hello . "World" . '!!!' , hahahaha;

La syntaxe est pourrie, c'est faux, mais ça passe quand meme. Merci php

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Message le Jeu Juin 28, 2007 12:08

Il faut croire que mon php ne veut pas m'aider car ça ne fonctionne pas lol
Mais bon si le developpement web commence a devenir une question de chance je vais me faire marabou :wink:

Jaunalgi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 303
Inscription: 11 Aoû 2004

Message le Jeu Juin 28, 2007 12:16

Sinon, essaye la bonne vieille méthode: tu mets tes valeurs en numérique dans tes champs et tu remplaces 1 à 1 par son équivalent PHP, pour voir si ça bloque dès le départ.
Vérifie que tu n'ai pas d'espace et que tes valeurs soient biens considérées comme des entiers.

shelcko
WRInaute discret
WRInaute discret
 
Messages: 234
Inscription: 1 Jan 2007

Message le Jeu Juin 28, 2007 12:28

Merci tu viens de me faire comprendre pourquoi ça ne marchait pas.
Mes nombres sont des réels et pas des entiers.
Et comme j'ai pas testé avec des nombres réels au départ je comprenais pas .
Encore merci à tous et surtout à toi Jaunalgi

bozoleclown
WRInaute impliqué
WRInaute impliqué
 
Messages: 893
Inscription: 24 Nov 2005

Message le Jeu Juin 28, 2007 12:37

et si tu faisais un var_dump($data);

tu pourrais voir ce qu'il y a dedans et s'il y a bien une valeur à la référence prix1..6 et quantite1..6


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité