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 :

[POO] lancer une fonction JS au demarage de la page


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut [POO] lancer une fonction JS au demarage de la page
    Bonjour,

    j aimerais lancer une fonction js au demarage de ma page.

    1/ je recupere des valeurs dans ma bdd et j en fais une variable js
    et
    2/ je lance la fonction JS qui traite les valeurs de la bdd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    echo ' <script type="text/javascript">
     
    fonction_somme();
     
    </script>';
    c est fonction qui traite les infos qui me pose probleme.

    celle ci marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    somme="somme";
    function fonction_somme()
    {
    alert();
    }
    quand je fais ceci, ca marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    somme="somme";
    function fonction_somme()
    {
    document.getElementById(somme).innerHTML=var_choix_force+var_choix_dexterite;
    }

    3/ la page s affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div><span id="somme"></span></div>

    voila, si vous savez pourquoi le getElemetById ne fonctionne pas.. n hesitez pas

    merci
    eric

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Ben alors je ne vais pas hésiter alors ^^ ..


    Le pourquoi:

    Les objets que tu appelles dans ta fonction ne sont pas encore instanciés ! Il n'existent pas encore pour javascript

    la balise body n'ayant pas encore même ouverte au moment ou la ligne est interprétée, javascript ne sait pas aller chercher un objet du body !

    Comment le resoudre.
    Attendre que les objets soient instanciés avant de les appeler
    Soit en deplaçant ton script après la declaration de l'objet. Mais cela n'est pas très propre, tu te retrouverais avec tes déclarations de fonctions javascript au mileu de ton code html...
    L'autre solution beaucoup plus académique est de trouver un évènement qui se déclenche juste après que tout le code html ait été interprété et donc que tous les elements de la page soient instanciés (existent pour le navigatuer).
    Cet évènement magique et salvateur c'est onload

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="focntion_somme()">
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    document.getElementById(somme).innerHTML=var_choix_force+var_choix_dexterite;
    salut
    juste une remarque, si var_choix_force ainsi que var_choix_dexterite sont les valeurs récupérée à partir des champs d'un formulaire, il faut les parser en Int avec parseInt()
    a+

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oui ou alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(somme).innerHTML=var_choix_force*1+var_choix_dexterite;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut
    super nickel!!!
    ca marche...

    dès que j ai mis ca au propre, je fais un petit resumé du code qui marche.

    une autre question...
    j ai pas qu 'une fonction js a lancer au demarage...
    donc on peut externaliser la chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onload="fonctions_au_demarage()"
    fichier js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function fonctions_au_demarage() 
    {
    function fonction1(){fsdfdfsdds}
    function fonction2(){fsdfdfsdds}
    function fonction3(){fsdfdfsdds}
    }
    je vais tenter...

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut
    ca marche!


    nickel...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <body onload="fonctions_au_demarage()">
    js:
    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
     
    var var_1=0;
    var var_2=0;
     
    function fonctions_au_demarage()
    {
    alert(var_1);
    alert(var_2);
    fonction_somme();
    }
     
     
    somme="somme";
    function fonction_somme()
    {
    document.getElementById(somme).innerHTML=(var_1*1)+(var_2*1);
    }


    merci les amis


    eric

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

Discussions similaires

  1. [POO] lancer une fonction dans une autre page
    Par Eskevar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/12/2008, 18h30
  2. [POO] Window pour lancer une fonction
    Par guy777 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/06/2008, 12h44
  3. [Onload] Lancer une fonction au chargement de la page ??
    Par Kylen dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/06/2005, 18h36
  4. [PHP-JS] comment lancer une fonction javascript a partir de php
    Par amika dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/06/2005, 19h23
  5. Comment lancer une fonction
    Par Elois dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/04/2004, 19h10

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