IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Erreur de syntaxe


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Erreur de syntaxe
    Salut,

    J'appelle un fichier js dans un fichier php et sur celui-ci j'ai un script javascript aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '<script type="text/javascript">';
    foreach(unserialize($_SESSION['array_time']) As $new_time) {
       echo 'liste = liste.push("'.$new_time.'");';    
    }
    echo 'start_timer();'
    .'</script>'
    Je cherche donc à ajouter des valeur dans le tableau liste mais je crois que ça plante.
    Ou est l'erreur?
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut


    ben regarde la console JS de ton browser et montre-nous le cde généré

  3. #3
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'liste.push("'.$new_time.'");';
    pas de liste=

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ma console IE est assez mauvaise je lance Outils->Console Java(Sun) j'ai une liste d'aide et rien d'autres...
    Sinon sans le liste= je n'ai plus cette erreur, mais une autre, que je ne comprends toujours pas

    Il me dit erreur ligne 66 Objet requis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    65 - var bar = document.getElementById('current').style;
    66 - var bartotal = document.getElementById('total').style;
    l'id total correspond à une image, qui existe, tout comme l'id current, sauf qu'à celui-ci il n'y a pas d'erreur
    D'ou ça peut venir?

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    sans le reste du codeon peut pas savoir ce qui cloche

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Euh oui ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (isset($_SESSION['time']) && isset($_SESSION['produits']) && isset($_SESSION['produits_quantite'])) {
       echo '<script type="text/javascript">';
              foreach(unserialize($_SESSION['array_time']) As $new_time) {
                 echo 'liste.push("'.$new_time.'");';    
              }
       echo 'start_timer();'
    	     .'</script>'
              .'<span id="decompte"></span><br>'
              .'<img src="../images/av/avancement.gif" height="10" id="current"><span  id="pourcent">0%</span>'
              .'<img src="../images/av/avancement.gif" height="10" id="total"><span id="pourcenttotal">0%</span>'
    /* etc */
    Testé sur un fichier simple html ça fonctionne

  7. #7
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    65 - var bar = document.getElementById('current').style;
    66 - var bartotal = document.getElementById('total').style;

    Je ne le voie pas ton code. C'est appelé avant ou après la déclaration html des elements en question ?

    Sinon utilisesl a console de FF elle 100 milliards de millairds de fois mieux

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oui je sais qu'elle est mieux mais je vais pas l'installer kuste pour ça
    Sinon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    var bar = document.getElementById('current').style;
    	var bartotal = document.getElementById('total').style;
     
    	var load = function()
    	{
    		loaded ++;
     
    		if(loaded >= 100)
    		{
    			document.getElementById("pourcent").innerHTML = loaded + '%';
    			clearInterval(ProcessRunning);
    			pos += 1;
    			if (pos < liste.length) {
    			   if (pos == (liste.length)-1) s = (liste.length); else s = 0;
    			   frequence = (liste[pos]-s) * 10;
    			   loaded = 0;
    			   ProcessRunning = setInterval(load, frequence);
    			} else return false;
    		}
     
    		bar.width = loaded + '%';
    		document.getElementById("pourcent").innerHTML = loaded + '%';
    		return true;
    	}
    ce code se trouve sur mon fichier .js et non sur ma page php, et elle est appelée avant le code php ci-dessus.

  9. #9
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Moi je l'aurais installé juste pour sa :o
    Mais bon j'ai eu quelques deboires avec IE.

    bref, si tu appelle le code JS suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var bar = document.getElementById('current').style; 
    var bartotal = document.getElementById('total').style;
    Et que plus tard dans la page tu affiches les elements HTML suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              .'<img src="../images/av/avancement.gif" height="10" id="current"><span  id="pourcent">0%</span>' 
              .'<img src="../images/av/avancement.gif" height="10" id="total"><span id="pourcenttotal">0%</span>'
    Sa ne peut pas fonctionner.

    Car au moment ou tu désires atteindre les eux elements HTML en JS, et bien ils n'existent pas dans l'arbre.

    faut que tu declares ces variables plus tard.

    ou alors, en supposant que la fonction load est la fonction d'evenement onload.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    var bar = null; 
       var bartotal = null; 
     
       var load = function() 
       { 
    bar = document.getElementById('current').style; 
    bartotal = document.getElementById('total').style;
          loaded ++; 
     
          if(loaded >= 100) 
          { 
             document.getElementById("pourcent").innerHTML = loaded + '%'; 
             clearInterval(ProcessRunning); 
             pos += 1; 
             if (pos < liste.length) { 
                if (pos == (liste.length)-1) s = (liste.length); else s = 0; 
                frequence = (liste[pos]-s) * 10; 
                loaded = 0; 
                ProcessRunning = setInterval(load, frequence); 
             } else return false; 
          } 
     
          bar.width = loaded + '%'; 
          document.getElementById("pourcent").innerHTML = loaded + '%'; 
          return true; 
       }
    Et la ce sont les joies du JS qui entre en scene avec cette gestion de portée de variable en non sens.

    bye

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    non c 'est juste que tu essayes d'accéder a un élément qui n'existe pas encore c'est tout

    la solution d'ePoX devrais marcher

  11. #11
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oui c'est vrai après avoir mis mon script après les elements html ça fonctionne.
    Mais grace a FireFox (que j'ai du installer), j'ai vu que je devais faire ça pour que ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // PHP
    ?>
       <script type="text/javascript">
          <?php foreach(unserialize($_SESSION['array_time']) As $new_time) {
             echo 'liste.push("'.$new_time.'");';    
            }?>
          alert(liste)
          start_timer();
       </script>
    <?php
    // PHP
    Avec des echos ça ne fonctionnent pas

  12. #12
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Alors la je ne comprends plus je n'ai pas touché au code javascript il maintenant au lieu de l'exécuté normalement il me l'affiche!
    J'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       echo '<script type="text/javascript">';
          foreach(unserialize($_SESSION['array_time']) As $new_time) {
             echo 'liste.push('.$new_time.');';    
          }
       echo 'start_timer();';
       echo '</script>';
    Et à l'affichage j'ai: liste.push(20);liste.push(20):start_timer();

  13. #13
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    et la source générée ca donne quoi ?

  14. #14
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ouahh trop bien cette méthode (avec FireFox) !
    Il manquait un guillemet !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo