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 :

Contenu d'un div => un textarea


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut Contenu d'un div => un textarea
    Bonjour !

    Je souhaite récupérer le contenu d'un div et le mettre dans un textarea.
    Mon code marche, cependant, j'ai un défaut qui m'embête énormément.
    En effet, à chaque nouvelle ligne, il m'ouvre une balise <div>. Quand je tente de modifier le code pour mettre un saut de ligne ou un espace, ça ne marche pas ...

    Défaut :
    <div id="recuperer">1;45.30580259943578;0.50537109375;</div><div id="recuperer">2;41.934976500546604;9.16259765625;</div><div id="recuperer">3;40.27952566881291;-3.40576171875;</div>

    Mon 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
     
    function addElement(lat,lng) {
    var ni = document.getElementById("recuperer");
     
    var newdiv = document.createElement("div");
    var divIdName = "recuperer";
    newdiv.setAttribute("id",divIdName);
    num++;
    newdiv.innerHTML = num +";" + lat + ";"+  lng + ";";
    ni.appendChild(newdiv);
    	/* Cache le contenu du div id=recuperer */
    document.getElementById("recuperer").style.display = "none";
    	/* Transfert le contenu du div dans le textarea */
    document.getElementById("recuperer2").innerHTML = document.getElementById("recuperer").innerHTML;		  
     
    }
    Dans ma page web :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $textarea='
     
    <div class="formulaire_titre">Récupérer les coordonnées:</div>
    <div style="width: 600px;   margin-left : auto; margin-right : auto; text-align:center;">
    <form method="post">
    <textarea id ="recuperer2" name="recuperer2" value="recuperer2" cols="67" rows="6"></textarea><br />
    <input type="Submit" value="OK">
    </form>
    </div>
    <p><b>Numéro marqueur; latitude; longitude;</b></p>
     
    <div id="recuperer" class="recuperer" style="width: 600px;   margin-left : auto; margin-right : auto; text-align:center;">
    </div>';
     
    echo $textarea;

    Merci d'avance si vous pouvez m'aider ...

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut deux questions pour répondre à la tienne ^^
    Que veux -tu obtenir exactement : que les ajouts successifs se fassent dans le même <div id="recuperer"> plutot que d'en recréer un autre a chaque fois ?
    Et aussi : ou est appelée ta fonction addElement ?

  3. #3
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Un id DOIT être unique dans la page

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup de vos réponses.

    Ma fonction AddElement est appelé lors de l'ajout d'un marqueur sur une carte (c'est un peu complexe, mais ça marche, donc on va s'en passé).

    Il existe un seul div avec un id=recuperer.
    Le textarea, son id =recuperer2.

    J'arrive à récupérer les données et les afficher dans le div id = recuperer.
    Cependant, quand je "transferts" le contenu du div dans le textarea, j'ai des <div id=recuperer> qui s'ajoutent autour de mes valeurs ^^'

  5. #5
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Oui ^^ car tes div s'imbriquent :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    ni.appendChild(newdiv);
    (étant donné que ni fait référence à ton div présent à l'origine et que newDiv vient d'être créé avec le même id, ce qui donne :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="recuperer"><div id="recuperer"></div></div>
    en gras = ton div de départ

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Oh... J'y ai pensé, mais quand je supprime les lignes de code, plus rien de marche >.<

    Edit : Ou quand je remplace le "div" par " ".

  7. #7
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Essaie de créer plutot un noeud texte que tu insères dans le div "récupérer", plutot que de recréer un div...
    (simple piste à tester/améliorer, je n'ai pas plus de temps ce matin dsl ^^)
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var newdiv = document.createTextNode(num +";" + lat + ";"+  lng + ";");

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Oki, merci beaucoup en tout cas, je test ça <3

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    J'ai du mal écrire quelque chose, l'idée est bonne, mais j'y arrive pas u_u ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var ni = document.getElementById("recuperer");
    num++;
    var newtext = document.createTextNode(num + ";" + lat + ";"+  lng + ";");
    var divIdName = "recuperer";
    newdiv.setAttribute("id",divIdName);
    //newdiv.innerHTML = num +";" + lat + ";"+  lng + ";";
    ni.appendChild(newtext);

  10. #10
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par ShinNoMegami Voir le message
    J'ai du mal écrire quelque chose, l'idée est bonne, mais j'y arrive pas u_u ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newdiv.setAttribute("id",divIdName);
    rechercher/remplacer est ton ami (un grand classique, on fait tous ça de temps en temps je te rassure ^^)

    edit : heu...j'avais dit j'ai pas le temps ce matin... qu'est-ce que je fous là moi ?

  11. #11
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Mdr^^ J'en profite alors!

    rechercher/remplacer est ton ami
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Contenu_div = document.getElementById("recuperer").innerHTML;
     
    	/* Transfert le contenu du div dans le textarea */
    Contenu_div.Replace("<div id="recuperer">"," ");;
    document.getElementById("recuperer2").innerHTML = Contenu_div;
    ?

  12. #12
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Heu.... non

    Je voulais simplement dire : en faisant la modification que je te suggérais avec createTextNode au lieu de createElement("div"), tu as oublié de remplacer newdiv par newtext dans la ligne que j'ai citée ^^

  13. #13
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Oh ! ... Je test^^

    Edit :
    J'ai du faire une bourde quelque part ^^'

    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
    function addElement(lat,lng) {
     
    var ni = document.getElementById("recuperer");
    num++;
    var newtext = document.createTextNode(num + ";" + lat + ";"+  lng + ";");
    var divIdName = "recuperer";
    newtext.setAttribute("id",divIdName);
     
    ni.appendChild(newdiv);
     
    Contenu_div = document.getElementById("recuperer").innerHTML;
     
    	/* Transfert le contenu du div dans le textarea */
    document.getElementById("recuperer2").innerHTML = Contenu_div;
     
    }

  14. #14
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Oui ^^
    On ne peut pas donner d'atribut à un noeud texte comme tu le fais ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    newtext.setAttribute("id",divIdName); // a supprimer
    et on n'en a d'ailleurs plus besoin ici car le div dans lequel on fait l'insertion a déjà son id "recuperer"

  15. #15
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Oki pour l'id =D

    ...

    Mon dieu ça marche ... *Happy*

    Merci merci merci du fond du coeur !! (k)

  16. #16
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Si je peux me permettre une dernière remarque... ^^

    Face aux différents problèmes successifs soulevés par ce morceau de code, tu ne donnais jamais les messages d'erreur ou autres informations de débuggage utiles : sur quel navigateur(s) testes-tu tes pages, et avec quel(s) débugger(s) intégré(s) ?

    Si tu n'en utilises aucun, ces deux là sont efficaces : (entre autres bien sûr)
    pour FF : Firebug
    pour IE : Debugbar
    (si jamais tu n'en avais pas encore installé, ça va te sauver la vie )

    A+ et bon dev a toi ^^

  17. #17
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Points : 3
    Points
    3
    Par défaut
    Oh... Désolée, je n'ai pas facilité la tâche =x

    Je n'avais pas d'erreur qui s'affichait, à proprement dit, juste que mon programme principal (qui affiche des icônes sur une carte) ne fonctionnait plus...

    J'utilise FF, je vais voir pour Firebug =)
    Merci encore ~

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

Discussions similaires

  1. Copier le contenu d'une div dans un textarea
    Par Invité dans le forum jQuery
    Réponses: 4
    Dernier message: 03/12/2013, 16h03
  2. actualiser le contenu d'une div
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 08/02/2006, 10h17
  3. [CSS] Décalage de contenu dans une div
    Par Onyx91 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/01/2006, 15h27
  4. [DIV] [FireFox] Problème affichage du contenu dans un div
    Par jibouze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/11/2005, 11h06
  5. Remplacer le contenu d'un div par un autre
    Par prgasp77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/10/2004, 23h48

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