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

AJAX Discussion :

Retours à la ligne dans une variable


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut Retours à la ligne dans une variable
    Bonjour,

    Je re-modifie une n-ième fois le post car je viens de comprendre ce qui n'allait pas. J'essais d'envoyer le contenu d'un textarea à php en utilisant javascript mais il ne prend pas en compte les retours à la ligne..
    Comment faire?

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Si il le prend

    mais sans code ....

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




    Mais bon... Sans code...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Bonjour,
    je vous remercie à la base j'avais posté tout mon code mais bon finalement ca m'a semblé inutile

    en fait j'ai finalement réussi mais j'ai perdu les sources, dès que je les retrouve je poste le code qui ne fonctionnait pas et celui qui fonctionne pour essayer de comprendre la différence.
    En vous remerciant.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Voici les sources promises :
    avec le fichier ajax.php ca ne fonctionne pas, quand javascript envois la variable à php il n'y a pas de retour à la ligne,
    mais avec var.php les retours à la ligne sont bien sauvegardés... Comment cela se fait-il?
    var.php
    ajax.php

    PS: ne faites pas attention à inner.HTML c'est juste pour du testing

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci de copier-coller les codes dans le contenu du message.
    + utiliser les balises [ CODE ] (icone "#" du menu)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    code non fonctionnel
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <!DOCTYPE html/>
    <html>
        <head>
            <title>Editeur de texte en ligne</title>
            <script>
    function writeToDB(champ, str) {
    var champ;
    var str;
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
          //document.getElementById("demo").innerHTML = xhttp.responseText;
        }
      };
      if(champ == 'titre'){
    xhttp.open("GET", "test.php?titre=" + str, true);
      xhttp.send();
      }else {
    xhttp.open("GET", "test.php?corps=" + str, true);
      xhttp.send();
      }
     
    }
     
            </script>
        </head>
        <body>
            <input type="text" onkeyup="writeToDB('titre', this.value)" id="titre">
     
            </input>
            </br>
            <textarea onkeyup="writeToDB('corps', this.value)" id="corps" style="width: 100%; height: 900px;">
     
            </textarea>
     
     
    <script>  // Fonctions de rafraichissement de la page
        function get_title(){
    setInterval(
                function(){
    var yhttp = new XMLHttpRequest();
    yhttp.onreadystatechange = function() {
    if (yhttp.readyState == 4 && yhttp.status == 200) {
    document.getElementById("titre").value = yhttp.responseText;
    }
    };
    yhttp.open("GET", "testlecture.php", true);
    yhttp.send();
                        }, 3000);
    } ////////////////////////////////////////////////////
        function get_corps(){
    setInterval(
                function(){
      var zhttp = new XMLHttpRequest();
      zhttp.onreadystatechange = function() {
        if (zhttp.readyState == 4 && zhttp.status == 200) {
          document.getElementById("corps").value = zhttp.responseText;
        }
      };
    zhttp.open("GET", "testcorps.php", true);
      zhttp.send();
                        }, 3000);
    }//////////////////////////////////////////////////////////////
    get_title();
    get_corps();
    </script>
        </body>
    </html>
    Code fonctionnel :
    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
     
    <!DOCTYPE html/>
    <html>
        <head>
            <title>test</title>
            <script>var test = "a bientot"
            function envoi(){
    var str = document.getElementById("monchamp").value;
    var xhttp = new XMLHttpRequest();
    xhttp.open("POST", "vartraitement.php", true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhttp.send("text="+str);
            }
     
            </script>
        </head>
        <body>
            <form action="vartraitement.php" method="GET">
                <textarea id="monchamp" name="text"></textarea>
                <input type="button" onclick="envoi()"></input>
            </form>
        </body>
    </html>

  8. #8
    Invité
    Invité(e)
    Par défaut
    1/ C'est ce que j'avais suggéré : nl2br().

    soit tu ne lis pas les réponses, sois tu ne suis pas les liens qu'on te donne...

    2/ il faut encoder les URL :
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    xhttp.open("GET", "testget.php?corps=" + encodeURI(str), true);

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    echo ( (isset($_GET['titre'] )) ? urldecode($_GET['titre']) : urldecode(nl2br($_GET['corps'])) );

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    je te remercie mais je ne l'ai justement pas utilisé, ce qui est d'autant plus étrange, je vais ressortir les sources complète et les poster dès que je peux..

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Donc voilà la méthode 1 dont je me plain :

    la page html avec le code AJAX
    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
    50
    51
    52
    53
    54
    55
    56
     
    <!DOCTYPE html/>
    <html>
    <head>
        <title>Editeur de texte en ligne</title>
        <script>
        function writeToDB(champ, str) {
            var xhttp = new XMLHttpRequest();
            if(champ == 'titre'){
                xhttp.open("GET", "test.php?titre=" + str, true);
                xhttp.send();
            }else {
                xhttp.open("GET", "test.php?corps=" + str, true);
                xhttp.send();
            }
        }
        </script>
    </head>
    <body>
        <form action="javascript:void(0);" method="get">
            <input type="text" onkeyup="writeToDB('titre', this.value)" id="titre" /></br>
            <textarea onkeyup="writeToDB('corps', this.value)" id="corps" style="width: 100%; height: 400px;"></textarea>
        </form>
     
        <script> 
            function get_title(){
                setInterval(
                    function(){
                        var yhttp = new XMLHttpRequest();
                        yhttp.onreadystatechange = function() {
                            if (yhttp.readyState == 4 && yhttp.status == 200) {
                                document.getElementById("titre").value = yhttp.responseText;
                            }
                        };
                        yhttp.open("GET", "requesttitle.php", true);
                        yhttp.send();
                    }, 3000);
            }
            function get_corps(){
                setInterval(
                    function(){
                        var zhttp = new XMLHttpRequest();
                        zhttp.onreadystatechange = function() {
                            if (zhttp.readyState == 4 && zhttp.status == 200) {
                                document.getElementById("corps").value = zhttp.responseText;
                            }
                        };
                        zhttp.open("GET", "requestarticle.php", true);
                        zhttp.send();
                    }, 3000);
            }
            get_title();
            get_corps();
        </script>
    </body>
    </html>
    La page php qui va insérer les données
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php
    if(isset($_GET['titre'])){
        $titre = $_GET['titre'];
        $basededonnee = 'beta';
        $host = '127.0.0.1';
        $user = '***';
        $password = '***';
        try {
            $conn = new PDO("mysql:host=$host;dbname=$basededonnee", $user, $password);
            // set the PDO error mode to exception
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
            $sql = "UPDATE text SET titre=:nvtitre WHERE id=1";
     
            // Prepare statement
            $stmt = $conn->prepare($sql);
     
            // execute the query
            $stmt->execute(array(
                'nvtitre' => $titre
                )
            );
     
            // echo a message to say the UPDATE succeeded
            echo $stmt->rowCount() . " records UPDATED successfully";
        }
        catch(PDOException $e){
            echo $sql . "<br>" . $e->getMessage();
        }
        $conn = null;
    }
     
    if(isset($_GET['corps'])){
        $corps=    $_GET['corps'];
        $basededonnee = 'beta';
        $host = '127.0.0.1';
        $user = '***';
        $password = '***';
        try {
            $conn = new PDO("mysql:host=$host;dbname=$basededonnee", $user, $password);
            // set the PDO error mode to exception
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
            $sql = "UPDATE text SET corps=:nvcorps WHERE id=1";
     
            // Prepare statement
            $stmt = $conn->prepare($sql);
     
            // execute the query
            $stmt->execute(array(
                'nvcorps' => $corps
                )
            );
     
            // echo a message to say the UPDATE succeeded
            echo $stmt->rowCount() . " records UPDATED successfully";
        }
        catch(PDOException $e){
            echo $sql . "<br>" . $e->getMessage();
        }
        $conn = null;
    }

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Et la méthode 2 qui ne devrait normalement pas fonctionner mais qui fonctionne.

    La page qui envois les données au php
    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
     
    <!DOCTYPE html/>
    <html>
    <head>
        <title>test</title>
        <script>
            function envoi(){
                var str = document.getElementById("monchamp").value;
                var xhttp = new XMLHttpRequest();
                xhttp.open("POST", "vartraitement.php", true);
                xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xhttp.send("text="+str);
            }
        </script>
    </head>
    <body>
        <form action="vartraitement.php" method="GET">
            <textarea id="monchamp" name="text"></textarea>
            <input type="button" onclick="envoi()"></input>
            </form>
    </body>
    </html>
    la page php qui est appellée appelle une bibliothèque de fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
        require'bibli.php';
        $text = $_POST['text'];
        set_text('titre', $text);
    et voici la bibliothèque (librairie chez les franglish) appellée

    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
     
    <?php
    function connect($reqsql, $nv_titre, $nv_text){ 
     
        $basededonnee = 'beta';                     //NOM DE LA BASE,  (GARDER LES "")
        $host = '127.0.0.1';                          //LOCALHOST OU IP DU SERVEUR DE BDD
        $user = '***';                               // UTILISATEUR SQL
        $password = '***';                       // MOT DE PASSE ET PUIS C'EST TOUT
     
        $dsn = 'mysql:dbname='.$basededonnee.';host='.$host.'';
        try {
            $requete = new PDO($dsn, $user, $password);
            $requete->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            echo 'Connexion échouée : ' . $e->getMessage();
        }
     
        if($reqsql == 'SELECT * FROM text WHERE id=1'){ 
            $reponse = $requete->query($reqsql);
            return $reponse;
            $reponse->closeCursor();
        }
        elseif($reqsql == 'UPDATE text SET titre = :nvtitre, corps = :nvtext WHERE id = 1'){ 
            $reqpreparee = $requete->prepare($reqsql);
            $reqpreparee->execute(array(
                'nvtitre' => $nv_titre,
                'nvtext' => $nv_text
                ));
            $reqpreparee->closeCursor();
        }
    }
     
    function get_text(){
        $sql= 'SELECT * FROM text WHERE id=1';
        $result = connect($sql,NULL, NULL);
        $var_transition = $result->fetch();
        //$titre = $var_transition['titre'];
        //$text = $var_transition['text'];
        return $var_transition;
        $result->closeCursor(); 
    }
     
    function set_text($titre, $text){
        $sql= 'UPDATE text SET titre = :nvtitre, corps = :nvtext WHERE id = 1';
        connect($sql, $titre, $text);
    }

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    cette ligne je l'ai copié collée j'avais pas fait attention que j'encodais l'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    par contre je ne décode l'URL nul part en php... c'est normal que ca ne me pose pas de problème?

  13. #13
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    php le fait pour toi
    tu récupère les données dans _POST ou _GET

Discussions similaires

  1. [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
  2. [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
  3. [AJAX] Retour à la ligne dans un textarea
    Par FredFrance21 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/12/2007, 23h20
  4. Retour à la ligne dans un <textarea>
    Par mello dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2007, 10h20
  5. retour à la ligne automatique sur textarea
    Par jpastier dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/10/2005, 00h44

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