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 :

Execution d'une fonction au chargement de la page


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Execution d'une fonction au chargement de la page
    Bonjour,
    De nouveau confronté à un problème voici ma question :

    Utilisant l'ajax sur un champ type text de formulaire (en l'occurrence ici, nom_developpeur), sur l'action onblur j'execute la fonction suivante. Celle-ci me permet simplement de retourner une phrase adéquate au cas ou le nom du développeur est correct ou non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function test_developpeur(formulaire){
    	ahah("../includes/ajax/verifDeveloppeur.php?nom_developpeur="+formulaire.nom_developpeur.value
    	<?PHP if($_GET['action']=="edit") echo '+"&id_developpeur='.$row_developpeur['id_developpeur'].'&action=edit"'; ?>,"plagebox");
    }
    Oui mais voila, cette fonction ne s'execute uniquement si je viens faire l'action "onblur" sur mon champ de formulaire. Et j'aimerais bien évidemment qu'elle s'execute au chargement de la page avec comme contrainte le fait de ne pas utiliser le fameux <body onload="">. (étant donné que j'utilise le système de template de Dreamweaver).

    Donc ma question est la suivante, quelle est la solution alternative pour tester au chargement de ma page la valeur de mon champ sans avoir à venir cliquer dessus ?

    Merci

  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 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload=test_developpeur(myformulaire)

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 895
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 895
    Points : 16 358
    Points
    16 358
    Par défaut
    Tu peux aussi utiliser une balise script juste avant la fermeture du body qui appelle la fonction test_developpeur.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Spacefrog j'ai essayé votre méthode, le petit bémol est que le gestionnaire d'erreur de Firefox me signale que "myformulaire" n'est pas définit. Voici le code déclaration de mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form name="formulaire" method="post" action="<?php $PHP_SELF; ?>" enctype="multipart/form-data">
    <input class="titre_actu_impaire" type="text" name="nom_developpeur" value="<?php echo $row_developpeur['nom_developpeur'];?>" maxlength="40" onblur="javascript:test_developpeur(this.form);"/>
    J'ai pris soin de remplacer "myformulaire" par "formulaire" mais rien à faire. Du coup, j'ai essayé de modifier la fonction js de cette façon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = test_developpeur(document.getElementsByName("formulaire"));
    La encore rien, j'ai une erreur m'indiquant que "formulaire.nom_developpeur has no properties"... Merci de m'éclairer

  5. #5
    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 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = test_developpeur(document.getElementsByName("formulaire")[0]);
    getElementsByName retourne une collection...

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = test_developpeur(document.getElementsByName("formulaire")[0]);
    getElementsByName retourne une collection...
    Euh, ici tu executes la fonction à sa déclaration, donc ça ne fonctionnera pas

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Au temps pour moi en effet. J'ai tenté de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementsByName("formulaire")[0]);
    Mais cela me retourne "undefined". Idem en tentant de naviguer avec un autre indice de quoi cela peut-il bien venir

    Et en plus de cela, ça ne sert à rien que je passe un champ particulier du formulaire dans la fonction. Il faut que je passe LE formulaire. Mais je ne comprends pas pourquoi dans ce cas la première solution de Spacefrog ne fonctionne pas

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    C'est tout à fait normal, c'est pour ça qu'il faut attendre le chargement de la page avant d'essayer d'accèder aux élements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload = function() {
    //code
    }

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Parfait Shizuna. En revoyant un peu mes fonctions, et en passant uniquement le champ concerné et non tout le formulaire, ça fonctionne impec' !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="javascript">
    window.onload = function() {
    	test_developpeur("document.formulaire.nom_developpeur.value");
    }
     
    function test_developpeur(nom_developpeur){ahah("../includes/ajax/verifDeveloppeur.php?nom_developpeur="+nom_developpeur
    	<?PHP if($_GET['action']=="edit") echo '+"&id_developpeur='.$row_developpeur['id_developpeur'].'&action=edit"'; ?>,"plagebox");
    }
    </script>
     
    Et pour le champ du formulaire :
    <input class="titre_actu_impaire" type="text" name="nom_developpeur" value="<?php echo $row_developpeur['nom_developpeur'];?>" maxlength="40" onblur="javascript:test_developpeur(this.value);"/>
    Merci pour l'aide

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

Discussions similaires

  1. Appel d'une fonction au chargement de la page
    Par paradeofphp dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 01/08/2010, 01h19
  2. [debutant]appeler une fonction au chargement de la page
    Par Romain93 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/04/2007, 15h17
  3. lancer une fonction au chargement de la page
    Par kimcharlene dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/03/2007, 21h34
  4. Lancer une fonction au chargement de la page
    Par Jibees dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2006, 20h16
  5. [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

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