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 :

fonctions javascript qui récupére les paramètres


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Points : 35
    Points
    35
    Par défaut fonctions javascript qui récupére les paramètres
    Bonjour ,
    Je veut une fonctions javascript qui récupére les paramètre passer l'ors de l'include du fichier.

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="/scripts/affiche.js?nom=berli&prenom=hollywood"></script>
    soit "getUrlVars" est notre fonction js, l'ors de l'appelle de cette fonction je veut celui-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var name = getUrlVars("nom");
    la variable name doit égale "berli";

    j'espère que ç'est claire.
    je suis à votre service pour plus d'informations.

    Cordialement,

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    as-tu regardé dans la FAQ ?

    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    il faut tester ce code
    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
    <script type="text/javascript">
        var nom=new Array();
        var valeur=new Array();
     
        // On enlève le ?
        param = window.location.search.slice(1,window.location.search.length);
     
        // On sépare le paramètres....
        // first[0] est de la forme param=valeur
     
        first = param.split("&");
     
        for(i=0;i<first.length;i++){
            second = first[i].split("=");
            nom[i] = second[0];
            valeur[i] = second[1];
        }
    </script>
    est ce que te peut m'aider a trouver une methode de tester ce code

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Il te suffit de l'inclure dans ton fichier JS.
    Pour voir le résultat, tu peux ajouter un alert() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i=0;i<first.length;i++){
            second = first[i].split("=");
            nom[i] = second[0];
            valeur[i] = second[1];
            alert(nom[i] + ' = ' + valeur[i]);
        }
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Ca n'est pas possible directement, mais voilà comment faire :

    La solution que j'utilise est d'ajouter par document.write un element au début du script avec un id connu du script. Puis de récupérer le node de cet element, et par un previousSibling, on accède au tag script générateur.
    Il suffit ensuite d'analyser l'attribut src

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    je trouve pas comment faire sa

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    quelle fonction javascript permet de remplace window.location.search
    dans le code suivant
    pour récupère src="/scripts/affiche.js?nom=berli&prenom=hollywood" et non pas l'URL de page web
    car le fonction recup() et a l'intérieur de de fonction globale qui contient
    ca <script type="text/javascript" src="/scripts/affiche.js?nom=berli&prenom=hollywood">

    ci dessous le fonction recup()
    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
    <script type="text/javascript">
    function recup()   
    {   var nom=new Array();
        var valeur=new Array();
     
        // On enlève le ?
        param = window.location.search.slice(0,window.location.search.length); 
     
        // On sépare le paramètres....
        // first[0] est de la forme param=valeur
     
        first = param.split("&");
     
        for(i=0;i<first.length;i++){
            second = first[i].split("=");
            nom[i] = second[0];
            valeur[i] = second[1];
           alert(nom[i] + ' = ' + valeur[i]);
     
        }
    }
     
     
    </script>
    <script type="text/javascript" src="/scripts/affiche.js?nom=berli&prenom=hollywood"></script>

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Actuellement, il n'existe rien en natif pour récupérer l'URI d'un javascript.
    "location" ne concerne que l'URL de ta page.

    1. Si c'est le script affiche.js qui doit récupérer ses paramètres, tu procède comme je l'indique plus haut. Le but est de forcer la création d'un tag à l'intérieur du script qu'on souhaite identifier.

    2.a. Sinon, vu ton code, puisque la récupération est externe à affiche.js. Tu ajoutes un id au tag script, tu le charge par getElementById et tu récupère l'attribute "src".

    2.b. Tu récupère tout les TagName de type "script", tu examine tous les attributes "src" à la recherche sur script affiche.js.

    L'avantage de la méthode 1, est de pouvoir mettre en place une fonction ou un objet générique, ré-utilisable. L'accès est quasi-direct, sans devoir intervenir sur les tags script.

    Quelque soit la méthode que tu retiendra, il faudra que tu passes par le DOM.

  9. #9
    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 640
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Je vois deux possibilités :

    la première la plus simple consisterait a mettre les paramètres en variables globale sur la page dans une balise script juste avant l'appel au script externe.

    La seconde implique de faire genérer le js pas le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html PUBLIC "-//WC//DTD XHTML 1.0 Strict//EN"
      "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3c.or/1999/xhtml" xml:lang="fr" lang="fr">
     
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <script src="externaljs.php?machin=bonjour" type="text/javascript"></script>
      <title> hello </title>  
      </head>
      <body>
     
      </body>
      </html>
    et le fichier php qui retourne du js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    header("content-type: application/x-javascript");
    header('Content-Type: text/html; charset=utf-8');
    $param=$_GET['machin'];
    echo 'alert("'.$param.'")';
    ?>

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    comment je peut récupère le src par document.getElementsByTagName

  11. #11
    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 640
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    en bouclant sur la collection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElemntsByTagName("script")
    puis en recuperant le src
    mais si tu as un paquet de balises script sur la page ... faudra tester avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    indexOf("/scripts/affiche.js")
    ou une regExp...
    ensuite un split sur ? et un autre sur & et un derneir sur = pour recupérer les paramètres ...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Le "src" est un attribut.
    Donc, une fois que tu as ton node "script" (issue de la collection), tu utilise la méthode .getAttribute("src").

  13. #13
    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 640
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    ou plus simplement et de façon crossbrowser :

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ou plus simplement et de façon crossbrowser :
    Curieuse affirmation que : crossbrowser.

    Récupérer l'URI d'un script par la propriété .src de son objet HTML n'est ni plus ni moins crossbrowser que de le faire par la méthode getAttribute d'un node.

    Car, sans DOM, pas de node ni d'objet HTML du tag script.

  15. #15
    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 640
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    non je parlais juste de syntaxe.
    par expérience j'ai juste noté que passer directement par la notation .attribute est mieux acceptée que de passer par les getAttribute et setAttribute

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Ok, je comprends.
    En l'occurence, ça reste à confirmer (avec IE, bien sur...). On n'est pas dans le cas de 'name' ou 'class'...

    Attention cependant :
    .getAttribute('src') done une URI, alors que .src donne une URL. Il faut passer par unescape() pour ce dernier cas.

Discussions similaires

  1. Fonction javascript qui récupère des éléments
    Par santati dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/05/2009, 00h57
  2. Fonction javascript qui n'effectue pas les actions demandées
    Par Joe-La-Boule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/06/2008, 15h27
  3. Réponses: 11
    Dernier message: 05/02/2008, 13h10
  4. Réponses: 3
    Dernier message: 29/01/2008, 12h04
  5. Réponses: 2
    Dernier message: 27/05/2007, 23h05

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