Php 在数据库文本中使用“nl2br()”和“Enter”时“.replaceWith”(不工作)出现问题

Php 在数据库文本中使用“nl2br()”和“Enter”时“.replaceWith”(不工作)出现问题,php,jquery,Php,Jquery,我有一个从数据库显示的文本,我创建了一个编辑文本按钮来编辑和保存它。当数据库中的文本在一行中时,它可以工作,但如果我使用enter to text进入新行,它就根本不起作用 我删除了“从数据库获取文本”部分,以便于测试: <?php $rr="asdadsasd \n d"; ?> <form method="post" action=""> <input type="submit" id="edp"value="EditPst"> <div cla

我有一个从数据库显示的文本,我创建了一个编辑文本按钮来编辑和保存它。当数据库中的文本在一行中时,它可以工作,但如果我使用enter to text进入新行,它就根本不起作用

我删除了“从数据库获取文本”部分,以便于测试:

<?php
$rr="asdadsasd \n d"; 
?>
<form method="post" action="">
<input type="submit"  id="edp"value="EditPst">
<div class="post"id="pst"><?php echo nl2br($rr);?></div>
</form>
<script>
$(document).on("click", "#edp", function() { 
    $("#edp").replaceWith('');
    $("#pst").replaceWith('<textarea name="pps" class="post"id="pss"><?php echo nl2br($rr);?></textarea><input type="submit"  id="spp" value="save"name="svpst"><input type="submit"  id="canp" value="cansel">');
});
</script>

如果您删除该部分,\n它将正常工作。

我无法复制您描述的问题。PHP nl2br仅在检测到新行字符时添加元素

nl2br-在字符串中的所有换行符之前插入HTML换行符

返回包含或插入在所有换行符\r\n\n\r\n和\r\n之前的字符串

使用以下内容进行测试,不包括无法处理的PHP

$function{ $.fn.nl2br=函数{ var re=RegExp?:\r\n | \r | \n,“g”; var str=$this.val; $this.valstr.replace; } $form.onclick,edp,函数{ $edp.remove; var cnt=$pst.html; $pst.replaceWith; $pss.htmlcnt; }; $form.submitFunction{ e、 防止违约; $pss.nl2br; //返回true; }; }; 阿斯达达斯德
请澄清你所说的“无效”是什么意思。您是否在控制台中看到错误?因为元素中的内容无关紧要,所以它应该按预期工作。您希望发生什么?如果您只是添加一个jquery.js文件链接,并使用$rr变量中的\n对其进行测试,如果没有它,您会发现问题所在。这是否回答了您的问题?这会产生另一个问题,当我单击“编辑文本”时更改,在“编辑文本显示”中,您答案的元素问题是当我使用enter键并将文本发送到它使用@behzad保存的数据库时,\n而不是内容中预期的@behzad。听起来你需要先将NL转换成HTML,然后再将代码发送回数据库,无论是JS还是PHP。我不明白你在说什么mean@behzad我更新了我的答案。同样,你的期望和愿望也不清楚。