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 :

Passer un paramètre html en JS


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut Passer un paramètre html en JS
    Bonjour,
    Je suis loin d'être expérimenté en JS.

    Dans un script html j'appelle un script JS.
    Pour afficher le script html dans mon navigateur je tape dans la barre d'adresse http://www.rudyv.be/VTT/Map.html?map=180822R.xml

    Une des lignes JS est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var runLayer = omnivore.gpx('URL')
    Comment faire en sorte que URL soit égal à 180822R.xml ?
    En d'autres termes comment passer le paramètre situé après ?map= à JS ?

    Je suppose qu'il faut utiliser getElementById mais je fais probablement une erreur de syntaxe car ça ne fonctionne pas.
    Merci de me donner la syntaxe correcte.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une (simple) recherche sur le web : "Récupérer en JavaScript les paramètres GET d'une URL"

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function getUrlParameter(name) {
        name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
        var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
        var results = regex.exec(location.search);
        return (results === null)? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
    };

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    var runLayer = omnivore.gpx( getUrlParameter('map') );

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Avant de poser la question j'ai fait une recherche Google et j'ai effectivement trouvé des fonctions comme celle que tu donnes.
    Je pensais qu'on pouvait faire plus simple, qu'il y avait une fonction dédiée dans JS.
    Merci beaucoup pour le code, je vais essayer mais j'avoue que je ne comprends pas à quoi servent ces 4 lignes.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Ça fonctionne très bien, encore merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    tu ne l'as pas précisé...
    ... mais si tu utilises PHP, on peut aussi récupérer la valeur en PHP (coté serveur, donc), et l'injecter "en dur" dans le code JavaScript :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $map = (!empty($_GET['map']))? $_GET['map'] : ''; ?>
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var map = '<?php echo $map; ?>'; // il faut mettre des '....' autour (chaine)
    var runLayer = omnivore.gpx( map );
    Ou :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    var map = <?php echo json_encode($map); ?>; // PAS de '....' ici ! (les "..." sont inclus avec json_encode)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Effectivement j'utilise php.
    Quand j'ai fait ma recherche sur Google j'ai trouvé beaucoup de solution différente.
    L'astuce PHP fonctionne probablement aussi mais je suis satisfait que la fonction JS que tu m'as donnée, pourquoi changer ?
    Exemple (cliquer sur une des petites cartes de France) : http://www.rudyv.be/PilotePrive/Agenda.php

  7. #7
    Invité
    Invité(e)
    Par défaut
    • PHP agit "coté serveur" (= AVANT l'affichage de la page)
    • JavaScript agit "coté client" (= APRES l'affichage de la page)

    Autrement dit : ils n'agissent pas au même moment.

    Ce n'est pas une "astuce PHP" : c'est ce qui se fait généralement (on traite les données "en amont", AVANT d'afficher la page).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    Ce que je considère comme astuce est d'utiliser echo pour modifier le code sur le serveur avant de l'envoyer au navigateur.
    D'habitude j'utilise echo pour afficher quelque chose sur l'écran.

  9. #9
    Invité
    Invité(e)
    Par défaut
    C'est que tu n'as pas compris comment (et surtout "quand") agit PHP.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 168
    Points : 49
    Points
    49
    Par défaut
    J'ai bien compris que php travaille sur le serveur avant d'envoyer quoi que ce soit au navigateur.
    D'habitude j'utilise echo pour générer du code html, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php;
    if (date(md)>"1215")
    	{ 
    	echo '<img src="/gif/SapinAnime.gif">';
    	} 
    else
    ça m'a juste un peu surpris de l'utiliser pour modifier du code JS mais pourquoi pas ?
    De toute façon ta fonction pure JS fonctionne très bien, problème résolu.

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

Discussions similaires

  1. <html:link action="" > :Passer plusieurs paramètres
    Par sisiniya dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/04/2011, 21h49
  2. Réponses: 2
    Dernier message: 22/10/2009, 09h22
  3. [html:link] comment passer 2 paramètres
    Par chennuo dans le forum Struts 1
    Réponses: 3
    Dernier message: 22/11/2007, 09h12
  4. Réponses: 3
    Dernier message: 11/06/2007, 12h33
  5. Formulaire HTML > passer un paramètre
    Par djbenito dans le forum IHM
    Réponses: 1
    Dernier message: 15/01/2007, 12h05

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