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 :

Impossible de lancer un pauvre hello word dans fichier externe !


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut Impossible de lancer un pauvre hello word dans fichier externe !
    Bonjour à tous !

    Je suis entrain de monter un petit site en php dans lequel j'inclus du javascript. J'ai écris une fonction pour afficher des infobulles contenant des données issus d'une base de donnée et ça marche très bien.

    Pour plus de clarté je voulais ranger ce code dans un fichier .js et l'appeler dans mon code php. Or impossible de faire fonctionner cela. Je suis donc remonter jusqu'à faire un simple hello word dans un fichier .js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function hello(){
    alert('Hello world');
    }
    je ne pense pas qu'il y ai d'erreur ^^. Dans le fichier php j'inclu le fichier .js dans le head :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" language="javascript" src="js/infobulle.js"></script>
    infobulle est le nom de mon fichier contenant la fonction hello() et il est rangé dans un dossier nommé js

    puis dans le body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    form name="formulaire" action="">
    <input type="text" name="saisie" size="3">
    <input type="button" value="Calculer le carré" onClick="javascript:hello()">
    </form>
    oui je sais c'est con de créer un champ de texte qui sert à rien mais j'avais tester de faire le calcul du carré du nombre écris dans le champ pour tester le passage de variable mais çe ne marchait pas ^^ alors je suis redescendu encore d'un cran...

    Bref rien de plus simple quoi... Et bien ça ne fonctionne pas !
    Au début je me suis dis que c'est juste que j'avais fait une betise bidon mais la je commence à craquer en plus il y a un truc qui m'a mis la puce à l'oreille ça fonctionné 1 fois et 1 seule (la première) et maintenant plus rien... Y a t il quelque chose d'essentiel que j'ai oublié quant à l'utilisation de javascript qui fait que mon pauvre hello word ne fonctionne pas?

    Merci d'avance !


    EDIT : en fait je crois que ça n'a jamais marché dans un fichier séparé c'est quand j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Calculer le carré" onClick="alert('Hello world');">
    que ça a marché en fait je crois.... j'ai essayé tellement de chose que je craque ^^

  2. #2
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Salut,

    Par hasard, si php s'exécute côté serveur et javascript côté client, alors peut-être que quand php provoque l'exécution du 'alert', la console client n'existe pas et donc il peut pas alerter...

    C'est chaud de mélanger les codes javascript et php.

    Tu as un débugger?

    Note: tu peux générer du javascript avec du php, mais tu ne peux pas provoquer l'exécution du javascript depuis un code php (enfin je crois). Pour javascript , il faut obligatoirement être sur le client, c'est-a-dire le navigateur, c'est lui qui exécute le javascript. Php est exécuté depuis le serveur donc quand le javascript est exécuté, le php n'existe même plus. Enfin c'est pas facile facile à comprendre.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    A tout hasard si tu met ta balise script avant la fin de body ça donne quoi?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <script type="text/javascript" language="javascript" src="js/infobulle.js"></script>
    </body>

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Par défaut
    Merci beaucoup pour réponses !

    @headmax : après essai aucuns changements :s

    @Darkyl : j'ai lu beaucoup de chose la dessus et je fais effectivement attention comme tu peux le voir même s'il s'agit d'un index.php je fais pas de trucs bizarres ^^
    je ne met pas de javascript dans des balises php parceque j'ai pas assez compris l'affaire pour m'en sortir lol donc tout le javascript que je met c'est dans du html pas du php. J'essayerais de faire des trucs compliquer quand je saurais faire un hello world ^^

    Je n'ai pas de debug je code sur notepad++ et j'envoi ça sur un serveur perso (nas synology) qui exécute le bazarre. Sur le site lorsque je regarde le code source (donc que du html et du javascript le php a bien disparu) tout est ok je fais bien un appel correcte à la fonction contenu dans un fichier js

  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 660
    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 660
    Billets dans le blog
    1
    Par défaut
    onclick n'attend pas une recette de crèpes suzette !
    et tout en minuscules
    et puis un input est une balise autofermante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Calculer le carré" onclick="hello()" />
    première chose a tester : le script externe est il bien lié

    attention : pas de balises javascript dans le fichier externe

    mets un en première ligne de ton fichier .js
    si au chargement l'alert ne se lance pas, c'est que le script suivant ne sera pas chargé.
    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 éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Par hasard, si php s'exécute côté serveur et javascript côté client, alors peut-être que quand php provoque l'exécution du 'alert', la console client n'existe pas et donc il peut pas alerter...
    je persiste : on ne peut pas lancer une fonction javascript (ou du code javascript) avec du php...

    Il y a une différence entre générer du javascript avec php et lancer du code javascript depuis un code php.

    Mais je demande l'avis des cadors du forum, s'ils passent par là...

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Un truc qui sert pas a grand chose parsé du JS mais qui te permet de générer du html par PHP et JS seulement au chargement de la page "onload" on peut passer par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php 
    echo "<script>";
        for ($i=0; $i<$taille; $i++) {
    echo 'document.write(\'<option value="' . $i . '">\' + tab_ens[' . $i . ']["nom_ens"] + \'</option>\');';
        }
        echo "</script>";
    ?>
    Ou l'appel d'une fonction js au chargement de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    echo "<script>";
    echo 'function hello(){alert("hello");};';
    echo 'window.onload = function(){hello();};';
    echo "</script>";
    ?>
    Bref pas très pratique, et ça sert pas a grand chose ...

  8. #8
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    As-tu une balise <base /> dans le <head> de ton document ?

    Si c'est le cas, tentes à nouveau en placant l'adresse absolue vers le fichier JS dans l'attribut src de la balise script.


    Tu peux tester en utilisant le code ci-dessous.

    test.html
    Code xhtml : 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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<title>Test</title>
     
    		<style type="text/css">
                            span{text-decoration:underline;cursor:pointer;color:#00f}
                    </style>
     
    		<script type="text/javascript" src="js/infobulle.js"></script>
    		<script type="text/javascript">
                            function test(){
                                    if(typeof hello=="function")hello();else alert('Erreur');
                            }
                    </script>
    	</head>
    	<body>
    		<p>
    			<span onclick="test()">Cliquez ici</span>
    		</p>
    	</body>
    </html>

    js/infobulle.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function hello(){
    	alert('Hello !');
    }

  9. #9
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Citation Envoyé par invivus Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" language="javascript" src="js/infobulle.js"></script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    form name="formulaire" action="">
    <input type="text" name="saisie" size="3">
    <input type="button" value="Calculer le carré" onClick="javascript:hello()">
    </form>
    Citation Envoyé par SpaceFrog Voir le message
    onclick n'attend pas une recette de crèpes suzette !
    et tout en minuscules
    et puis un input est une balise autofermante
    pour compléter ce qu'a écrit SpaceFrog : inutile d'écrire "javascript" après un événement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Calculer le carré" onclick="hello()">
    Dans la balise script l'attribut language="javascript" est superflu.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2014, 12h14
  2. adsense google dans fichier externe
    Par isabelle22 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/03/2010, 22h27
  3. Imprimer lettre word dans fichier Excel
    Par Boubas1 dans le forum Excel
    Réponses: 1
    Dernier message: 08/07/2008, 16h06
  4. image aléatoire avec légende dans fichier externe
    Par DC_44 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 20/09/2007, 11h03

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