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 :

[AJAX] Retour à la ligne dans un textarea


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut [AJAX] Retour à la ligne dans un textarea
    Bonjour à toutes et à tous !

    Voilà, j'ai un petit problème avec un textarea pour afficher des retours à la ligne.

    Je m'explique :

    - J'enregistre des données dans une base Access depuis un textarea (je sais, mais pas le choix pour la mise en application de mon projet) via un script PHP donc voici un extrait du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $content=rawurlencode(nl2br(stripslashes($_POST['content'])));
    //et je fais mon INSERT dans ma base qui se déroule très bien
    Ensuite, je récupère mes données avec un SELECT normal en Ajax dans un <div> avec un innerHTML (document.getElementById('temp').innerHTML). Les <BR> s'affichent alors dedans.
    C'est ma fonction "afficher" qui en passant l'URL de mon script, affiche le résultat de la requête.


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
     
    function afficher (url)
    {
    if(window.XMLHttpRequest)
    objet0= new XMLHttpRequest();
    else if(window.ActiveXObject)
    objet0 = new ActiveXObject("Microsoft.XMLHTTP" );
    else return(false);
    objet0.open ('GET', url, true);
    objet0.onreadystatechange = function()
    {
    if (objet0.readyState==1)
    {
    document.getElementById('temp').innerHTML="";
    }
    else if (objet0.readyState==4)
    {
    if(objet0.status==200)
    {
    document.getElementById('temp').innerHTML=objet0.responseText;
    display_template();
    }
    else if(objet0.status==404)
    {
    document.getElementById('temp').innerHTML = "URL error";
    }
    else
    {
    document.getElementById('temp').innerHTML = "Error : ".objet0.status;
    }
    }
    }
    objet0.send(null);
    return;
    }
     
    //Je supprime les <BR> qui apparaissent
    var content=document.getElementById('temp').innerHTML;
     
    while(content.indexOf("<BR>")!=-1)
    {
    content=content.replace("<BR>","\n");
    }
       content = content.split("<BR>").join("\n");
     
    // J'affiche le contenu 
     
       document.getElementById('textarea').innerHTML+=content;
    Le problème qui se pose est le suivant :
    - tout mon texte s'affiche en ligne sans les <BR> mais avec des espaces à la place si j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('textarea').innerHTML+=content;
    Sinon, les <BR> sont bien retranscrits de cette manière mais j'obtiens des caractères HTML à la place des caractères spéciaux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('textarea').value+=content;
    Auriez-vous une idée ?

    J'ai déjà essayé plusieurs méthodes en PHP mais je me rends compte que c'est plus au niveau Javascript que le formatage du texte doit se faire.

    Merci d'avance !

    Fred

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Truc bete, mais tu as essayé de ne pas mettre le nl2br avec une des 2 méthodes de javascript value et innerHTML ?
    A tout hasard ^^
    Cartes Pokémon, Yugioh, Magic ?
    Communauté d'échange

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonsoir kangaxx !

    Merci pour ta réponse !
    Malheureusement non, j'avais déjà essayé hier Soir mais sans succès.
    Visiblement, le problème se trouve dès que je veux récupérer mon texte dans le textarea, mais pas avant (comme dans mon premier innerHTML nommé "temp" qui me permet de vérifier le formatage du texte avant).

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Coucou !

    Voilà, j'ai trouvé une solution pour contourner mon problème après de longues recherches.

    J'ai utilisé le ".value" pour le textarea et j'ai appliqué une fonction Javascript trouvé sur la Toile qui retranscrit tous les caractères spéciaux qui existent.

    Fonction peu pratique mais qui fonctionne.

    Sinon, personne n'a eu ce genre de problème ?

    A vrai dire, tout fonctionne pour l'insertion et l'extraction depuis la base de données mais ce n'est que lorsque le text est utilisé dans un textarea que plus rien ne fonctionne :
    - soit je n'ai plus mes sauts de ligne pris en compte avec ".innerHTML"
    - soit j'obtiens mes sauts de lignes mais l'équivalent en HTML de mes caractères spéciaux avec ".value".

    Merci d'avance et Bonne Soirée !

    Fred

Discussions similaires

  1. [TinyMCE] Problème de retour à la ligne dans un textarea
    Par merou19 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 20/01/2010, 18h08
  2. Retour la ligne dans champs textarea
    Par hoangeric dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 15/07/2009, 21h27
  3. [DOM] Insérer retours de lignes dans un textarea
    Par Ralfman68 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 17/02/2009, 13h06
  4. [AJAX] Retour à la ligne dans un Textarea
    Par viklaus83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/02/2008, 10h40
  5. Retour à la ligne dans un <textarea>
    Par mello dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2007, 10h20

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