当从POST传递带有换行符的字符串时,文本区域没有更新


Textarea not updating when passed a string with a newline from POST?

我的代码遇到了一些问题,我将其缩小并简化为以下两个部分:

index . html

<html>
<body>
<form name="form" method="post" action="upload.php" target="iframe">
<textarea id="text1" name="text1"></textarea>
<input type="submit" />
</form>
<textarea id="text2"></textarea>
<iframe name="iframe" id="iframe" style="display:none;" ></iframe>
</body>
</html>

upload.php:

<?php
$message= $_POST['text1'];
echo <<<_END
<script language="JavaScript" type="text/javascript">
var parDoc = window.parent.document;
parDoc.getElementById('text2').value = '$message';
</script>
_END;
?>

上面代码的总体目标是在text2中呈现我从text1提交的内容。这种方法适用于text1中包含换行符的消息。当尝试提交带有换行符的消息时,text2没有更新。我似乎找不到这个错误,而且我真的陷入了思维的窠臼。什么好主意吗?同样,这是我的全部代码的简化版本。我把错误缩小到这个问题

在upload.php中试试

<?php
$message= nl2br($_POST['text1']);
$message = str_replace("'r'n",'',$message);
echo '
<script language="JavaScript" type="text/javascript">
var parDoc = window.parent.document;
var text = "' . $message . '";
text = text.replace(/<br '/>/ig,"''n");
parDoc.getElementById("text2").value = text;
</script>';
?>