2010-10-26 9 views
4

J'ai une zone de texte dans HTML où l'utilisateur peut entrer du texte, mais lorsque le formulaire est soumis, et il est passé à un php script echo, il n'y a pas de nouvelle ligne. Sachant que HTML fait ça, j'ai essayé de faire une preg_replace() avant l'écho ... ilHTML textarea caractère nouvelle ligne

echo preg_replace("/\n/", "<br />", $_GET["text"]); 

mais tout est sur une ligne.

Donc, ma meilleure estimation est que HTML textareas utilisent un caractère de nouvelle ligne différente ... quelqu'un peut-il faire la lumière sur le sujet?

EDIT

Ok, donc j'ai compris le problème: Le Javascript est dépouillant les nouvelles lignes. view code here

EDIT 2

Ok, donc merci à Jason pour résoudre ce problème. Je devais faire:

escape(document.getElementById('text')); 

Au lieu de:

document.getElementById('text'); 

et les nouvelles lignes sont conservées, problème résolu!

Répondre

3
echo nl2br($_GET['text']) 

Cependant, votre preg_replace a fonctionné pour moi!

+0

Toujours pas de chance ... – Entity

+0

Vraiment ?! Les deux méthodes fonctionnent pour moi? – Jason

+0

Lorsque vous visualisez en source, imprimez-vous une nouvelle ligne? Comme dans, après avoir soumis le formulaire, 'echo $ _GET ['text']' Que voyez-vous dans le HTML actuel, non formaté? – Jason

0

Habituellement, lorsque vous testez des nouvelles lignes dans n'importe quelle chaîne, j'utilise /[\n\r]/, juste pour couvrir mes bases. Ma conjecture est que cela correspondrait aux nouvelles lignes.

+0

Ne semble pas fonctionner ... – Entity

+0

vous pourriez avoir un encodage impair, ou peut-être les pauses sont supprimées avant d'obtenir les données GET? Cette regex va correspondre à n'importe quel saut de ligne, je l'utilise pour une webapp en ce moment (enfin, j'utilise en fait ''/ ([^ \ n \ r] +) [\ n \ r] /'', mais c'est essentiellement le même – Jesse

+0

Je me demande si vous obtenez vos pauses, aussi dépouillé – Jason

Questions connexes