我的代码遇到了一些麻烦,我在以下两个部分中缩小了范围并进行了简化:
的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不会更新。我似乎无法追踪错误,而且我真的陷入了这个错误。有任何想法吗?同样,这是我整个代码的简化版本。我把错误归结为这个问题。
答案 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>';
?>