|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() |
Bonjour à toutes et à tous.
Je complète le titre tout d'abord en vous exposant mon problème. Soit une page HTML "fabriquée" en grande part par du PHP, celle-ci comporte grosso modo des fioritures pour faire beau et une "div" contenant trois formulaires, l'un nommé "Devis", l'autre nommé "Client" et le troisième nommé "Envoi_commande". Sur chaque formulaire : - des boutons pour exécuter des ouvertures de fenêtres "popup", le résultat est Ok pour ceux là, - d'autres pour valider des choix. Par exemple quand on a choisi une quantité, on clique sur un bouton "Valider" pour que suivant la quantité, le prix s'affiche dans la case qui va bien, ne fonctionne pas - quand on clique sur "Commandez vos cartes", une vérification d'une case à cocher devrait être faite, si la case a été laissée tell que, une alerte, sinon on passe à la page suivante, ne fonctionne pas. J'ai mes fonctions définies dans la section "<head>" de la page. Si vous pouviez m'aider à trouver un embryon de réponse, ce serait bien sympathique. Ce doit probablement être trivial mais Javascript n'est pas mon langage maternel. J'ai mis ma page générée en PHP par les choix précédemment fait sur la page précédente par l'utilisateur ici. J'ai ajouté un ordre "alert" dans la fonction qui calcule le prix, je ne la reçoit pas, donc je pense qu ela fonction n'est pas lancée. Vous l'aurez deviné, je construit un site de vente de cartes. Merci par avance. |
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
cas 20 : Tarif_retenu = 33.00 ;
index.html:50Uncaught SyntaxError: Unexpected token : Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() |
Merci pour cette erreur que je n'avais pas vue !!
Cela suffisait-il à empêcher les autres fonctions de focntionner ? Edit : J'ai rectifié cette erreur, cela ne fonctionne toujours pas !!! |
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
Citation:
C'est l'erreur que google chrome m'affichait quand j'essayais d'afficher ta page, il existe peut-être d'autres erreurs. Une fois qu'il n'y aura plus d'erreurs de syntaxe, je commencerai à lire le code. :-) |
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() |
Je ne pensais pas que javascript était sensible à la casse, j'ai écrit aussi "switch" avec un grand "s" et ça non plus cela ne lui plait pas.
J'ai au moins cette fonction qui fonctionne à présent. Je vais essayer de chercher pour les autres fonctions. Merci déjà pour ce grand pas. |
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() |
J'ai été un peu vite.
J'ai modifié la fonction pour qu'elle accepte déjà de ne plus générer d'erreur. Code :
Le bouton "Déjà inscrit ? " qui demande une adresse email fonctionne et l'affiche dans la case appropriée et le bouton "Vérifier" ouvre bien la fenêtre désirée. Le bouton "Commandez vos cartes" ne fait rien. N'existe-t-il pas un débogueur pour JavaScript ? Je vais mettre des alert partout pour voir au moins si on entre dans les fonctions. On revient à la méthode des années 70. |
||
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
A ma connaissance il n'existe pas de bon deboggeur (sinon je l'utiliserai) mais il existe malgré tout qqes outils je pense.
Pour debogger en général j'utilise la méthode ancestrale des alert (enfin des console.log sous chrome c'est plus propre) de façon dichotomique. Càd que si mon résultat final est faux, je divise mon code en 2 en checkant le résultat à mis parcours, s'il est bon, je vérifie après par la même méthode, s'il est déjà erroné, alors je recherche dans le code le précédent. Cette méthode est un peu effrayante mais en réalité rapide. (un temps logarithmique.) Enfin, il m'est aussi arrivé de faire une petite fonction de debug (que je n'ai pas ici sous la main). En gros l'idée etait de déclarer toutes mes fonctions dans un objet. (pour les rassembler facilement). ex : Code :
Code :
fait aussi attention de mon exemple si tu possèdes des fonctions servant de constructor, dans la surcharge tu devras alors checker si tu crées une nouvelle instance et si oui, faire un appel a "new fn". |
||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
un bon editeur de code t'aurais permis de voir directement ton erreur, même ce forum te la montre grace aux couleurs.
Code html :
<input onclick="checkCheckBoxAgree("Envoi_Commande")" />
[spoiler]les guillemets imbriqués[/spoiler] sinon n'hésite pas à installer google chrome et à jeter un oeil dans la console d'erreurs. j'ai trouvé tes 2 erreurs comme ça. (le message apparaît en cliquant sur le bouton qui "ne fonctionne pas") bienvenue et bonne chance dans le monde effroyable du javascript. |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() |
[QUOTE=Willpower;6183249]un bon editeur de code t'aurais permis de voir directement ton erreur, même ce forum te la montre grace aux couleurs.
Code html :
<input onclick="checkCheckBoxAgree("Envoi_Commande")" />
[spoiler]les guillemets imbriqués[/spoiler] Merci Willpower de ton aide précieuse. J'utilise Eclipse et Taco HTML Edit sur Mac, mais j'avais pas remarqué ces effets de couleurs sur les guillemets en trop. Je vais regarder ça de beaucoup plus prés. Je vois bien les erreurs en PHP ou HTML avec l'habitude, mais je débute depuis 8 jours en Javascript et je suis allergique au C et C++, donc tu pourras comprendre mes difficultés. J'ai découvert aujourd'hui un débogeur sur Safari dans le menu développement qui est facultatif. Il permet de mettre des points d'arrêt et d'examiner les valeurs des variables et il indique quelques fois les erreurs aussi. Merci encore, je vais mettre les tutoriels de Javascript de ce site sur mon iPad pour avoir de la lecture dans les transports en commun. |
|
00
|
|
|
#10 | ||||
|
Membre expérimenté
![]() ![]() Duke Jikel Inscription : mai 2010 Messages : 340 ![]() |
Citation:
Citation:
Et pour débugger tu as tous les outils qu'il te faut : Internet explorer : Internet Explorer Developer toolbar + Microsoft script debugger, qui permet de debugger en mettant des points d'arrêts, espionner les variables, faire du pas à pas Firefox : Firebug : idem et même plus Opera : Dragon Fly : Idem Chrome / Safari : Webkit developper tools, tu peux aussi faire du debug pas à pas et compagnie. Pour mettre un point d'arrêt sans te prendre la tête la manière la plus simple est d'utiliser le mot "debugger" dans le code : Code :
|
||||
|
|
00
|
|
|
#11 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
Citation:
Par contre ma technique (à coup de console.log ou autre) est extrêmement efficace et ce n'est pas mal de faire ainsi, chacun sa manière. Etant donné que mes fonctions sont par défaut définies dans un objet ("fn") et que je les code relativement courtes. Il me suffit alors de rajouter mes 5 lignes de code entre la déclaration des fonctions et l'exécution du code pour débugger facilement et de façon personnalisé, rien de plus simple. Evidemment, le "console.log" n'est pas indispensable, comme je l'ai dit, il suffit de personnaliser après, on peut utiliser des "try/catch" ou encore ton "debugger". Bref, chacun trouve sa façon. On a ici donné tous les outils possible à "MaPommeTao". |
|||
|
|
00
|
|
|
#12 | |
|
Membre expérimenté
![]() ![]() Duke Jikel Inscription : mai 2010 Messages : 340 ![]() |
Citation:
Autre chose, quand tu as une erreur JS, tu peux faire forcer firefox à mettre un point d'arrêt sur l'erreur. Pour ça il suffit de cliquer sur le bouton qui ressemble à un bouton "pause" dans l'onglet "console", il se mettra à "clignoter". Et à la première erreur il s'arrêtera. C'est utile pour débugger rapidement, efficacement et détecter les erreurs dans les try/catch. Libre à toi de ne pas vouloir gagner en productivité |
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() |
Ne vous chamaillez pas les gars.
Il existe effectivement de outils pour deboguer. N'utilisant Javascript que depuis à peine 15 jours car je ne peux pas faire autrement, je découvre les joies du "debug" en situation avec les outils qui vont avec les différents navigateurs. J'ai pu ainsi tester les points d'arrêt, les affichages de valeurs et tout le reste. Une erreur de syntaxe de PHP ou MySQL est plus facile à cerner, on récupère un message d'erreur immédiat sur la page Web. Je sais on prend de mauvaises habitudes avec le temps et les différents OS et langages qu'on utilise. (Fortran, Cobol, Pascal, Basic, Visual Basic, DCL, RPG, HTML, PHP, SQL, MySQL). Des fois la tête est un peu encombrée. Grace à vous deux, j'ai beaucoup avancé dans mon projet et un petit jeune me vient en soutien. Difficile d'avoir 58 ans dans ce métier et de faire du multi-tâche. Merci à vous deux. P.S : Je développe sous Safari, accessoirement sous Firefox et si Internet Explorer tournait sous Mac, je m'y frotterai un peu, mais c'est pas le cas. merci MS. |
|
00
|
Copyright © 2000-2012 - www.developpez.com