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
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload=test_developpeur(myformulaire)
    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
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

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

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    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 658
    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 658
    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...
    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 !

  6. #6
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    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
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    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 chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    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
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    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