从POST传递带换行符的字符串时,Textarea不会更新?

时间:2011-07-09 21:13:16

标签: php html http post textarea

我的代码遇到了一些麻烦,我在以下两个部分中缩小了范围并进行了简化:

的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不会更新。我似乎无法追踪错误,而且我真的陷入了这个错误。有任何想法吗?同样,这是我整个代码的简化版本。我把错误归结为这个问题。

1 个答案:

答案 0 :(得分:2)

在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>';
?>