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?
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?
Si il le prend
mais sans code ....
Bonjour,
- nl2br() ?
Mais bon... Sans code...
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.
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
Merci de copier-coller les codes dans le contenu du message.
+ utiliser les balises [ CODE ] (icone "#" du menu)
code non fonctionnel
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
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 : 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>
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'])) );
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..
Donc voilà la méthode 1 dont je me plain :
la page html avec le code AJAX
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 <!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>
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; }
Et la méthode 2 qui ne devrait normalement pas fonctionner mais qui fonctionne.
La page qui envois les données au php
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
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>
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 <?php require'bibli.php'; $text = $_POST['text']; set_text('titre', $text);
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); }
cette ligne je l'ai copié collée j'avais pas fait attention que j'encodais l'url:
par contre je ne décode l'URL nul part en php... c'est normal que ca ne me pose pas de problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
php le fait pour toi
tu récupère les données dans _POST ou _GET
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager