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 :

[DOM] Changement de html dans une div grace à javascript


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut [DOM] Changement de html dans une div grace à javascript
    Bonjour
    voila j'ai un bug dans un programme. Celui ci doit changer le cnotenu d'une div en changeant le code de cette div
    On change le code kl'orsqu'on clique sur un lien
    voila le code :
    La fonction javascript

    function affichelisten(toThis)
    {
    if (document.getElementById)
    {
    document.getElementById("ecoute").innerHTML = toThis;
    }
    else if (document.all)
    {
    document.all["ecoute"].innerHTML = toThis;
    }
    }



    Puis le lien qui doit faire changer le code XHTML de la div en question :

    <a href="#" onClick="affichelisten('<object type="application/x-shockwave-flash" data="http://localhost/test3/audio/player.swf" id="audioplayer1" height="24" width="290">
    <param name="movie" value="../musique/player.swf">
    <param name="FlashVars" value="playerID=1&amp;soundFile=$liend">
    <param name="quality" value="high">
    <param name="menu" value="false">
    <param name="wmode" value="transparent">
    </object>'
    )">
    Ecouter</a><br/>

    Enfin le resultat :

    ' )"> Ecouter

    qui est pas ce que j'attend.... Quand on clique dessus il ne se passe rien à mon grand désespoir....

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il faut échapper les ".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <a href="#" onClick="affichelisten('<object type=\'application/x-shockwave-flash\' data=\'http://localhost/test3/audio/player.swf\' id=\'audioplayer1\' height=\'24\' width=\'290\'>
    <param name=\'movie\' value=\'../musique/player.swf\'>
    <param name=\'FlashVars\' value=\'playerID=1&amp;soundFile=$liend\'>
    <param name=\'quality\' value=\'high\'>
    <param name=\'menu\' value=\'false\'>
    <param name=\'wmode\' value=\'transparent\'>
    </object>'
    )">
    Ecouter</a><br/>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    En fait cela doit être ca sauf que cela ne marche pas plus
    parce que j'ai oubliais de préciser que tout ce code se trouve dans une variable PHP... donc voila le code....
    Cela s'affiche correctement mais cela donne rien...


    $premier=<<<EOT
    <a href="#" onClick="affichelisten('<object type=\'application/x-shockwave-flash\' data=\'../musique/player.swf\' id=\'audioplayer1\' height=\'24\' width=\'290\'>
    <param name=\'movie\' value=\'../musique/player.swf\'>
    <param name=\'FlashVars\' value=\'playerID=1&amp;soundFile=$liend\'>
    <param name=\'quality\' value=\'high\'>
    <param name=\'menu\' value=\'false\'>
    <param name=\'wmode\' value=\'transparent\'>
    </object>'
    )">

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    2 choses :

    - document.getElementById fonctionne avec tous les navigateurs modernes. Inutile de faire des tests saugrenus avec document.all...

    - Plutôt que de t'embêter à trimbaler cette fichue chaine "échappée" tu peux utiliser un élément textarea. Le contenu d'un tel élément est considéré comme du texte, il n'est pas interprêté. Tu peux ensuite récupérer le texte qui s'y trouve en utilisant également la propriété innerHTML. Pour finir, on le cache, car il ne sert juste, dans ce cas, qu'à contenir cette chaîne. C'est une technique intéressante chaque fois qu'on a à générer des fragments de DOM ± volumineux à la volée. On peut également y enfouir un template, pour ceux qui utilisent prototype.js. Bref, le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <textarea id="pouet" style="display: none;"><object type="application/x-shockwave-flash" data="http://localhost/test3/audio/player.swf" id="audioplayer1" height="24" width="290">
    <param name="movie" value="../musique/player.swf">
    <param name="FlashVars" value="playerID=1&amp;soundFile=$liend">
    <param name="quality" value="high">
    <param name="menu" value="false">
    <param name="wmode" value="transparent">
    </object></textarea>
    Ton lien peut ensuite s'écrire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onClick="affichelisten();"/>
    Et ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function affichelisten() {
        var content = document.getElementById("pouet").innerHTML;
        // ...
        document.getElementById("ecoute").innerHTML = content;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    En fait si j'utilise document.all..
    c'est parce que cela DOIT fonctionner avec les vieux navigateurs aussi

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    Mais merci je vais essayer ca tout de suite

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    Citation Envoyé par sebxid Voir le message
    En fait si j'utilise document.all..
    c'est parce que cela DOIT fonctionner avec les vieux navigateurs aussi
    Argh, pas de chance...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    En fait si il y a une pb, c'est a propos de cette variable Php
    $liend
    que l'on trouve la dedant :
    <param name="FlashVars" value="playerID=1&amp;soundFile=$liend">

    Pacequ'en fait, je dois faire une proposition de morceau a ecouter. et lorsque l'on clique sur ecoute, le div doit afficher le player et mettre en route la sique
    Bien sur l'addresse du morceau se trouve justement dans cette variable $liend.
    J'ai essaye un truc comme ca mais...
    <param name="FlashVars" value="playerID=1&amp;soundFile=<?php echo $liend; ?>">

    Ca ne marche pas

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    Je ne suis pas sûr de comprendre mais je te répondrais bien qu'il suffit de sortir sa valeur au lieu de "$liend" dans ton fragment HTML. Non ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    j'ai une proposition de liste de morceau à écouter
    Cette page est construite en php car l'addresse des morceaux mp3 est sur une base de donnée.
    Le truc c'est que lorsqu'on clique sur : ecouter,
    alors un div (qui doit contenir le player ) change et le player se met en route (c'est à dire que le div se remplit du code html du player)

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    OK, donc c'est un fragment purement statique. Tu ne peux pas t'arranger à sortir la valeur de "$liend" dans ce fragment ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Par défaut
    oui voila.
    Le serveur prépare le code htlm à afficher quand il construit sa page. Une fois la page faite, c'est le navigateur qui doit se débrouiller il a toutes les infos qui lui faut.
    (Je suis pas mauvais en php, mais alors javascript... et encore moins ajax a ce qui parait serait l'outils le plsu approprié, mais la j'ai pu le temps)

Discussions similaires

  1. Afficher une bannière dans une div avec javascript
    Par houssem86 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/10/2013, 08h26
  2. Chargement html dans une DIV sans son CSS
    Par Rifton007 dans le forum jQuery
    Réponses: 2
    Dernier message: 10/06/2009, 07h57
  3. [AJAX] Changement de contenu dans une div.
    Par tinoudu01 dans le forum AJAX
    Réponses: 10
    Dernier message: 01/05/2009, 12h22
  4. [HTML] Centrer une DIV dans une autre
    Par graphicsxp dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 22/02/2006, 17h10
  5. [HTML]ouvrir une page html dans une div
    Par Phenomenium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/01/2006, 17h23

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