【问题标题】:Add line breaks to mysql textarea将换行符添加到 mysql textarea
【发布时间】:2013-12-09 01:04:13
【问题描述】:

我为我的客户创建了一个简单的支持区域来发布新的职位空缺,并希望通过在前端可见的职位描述文本中添加换行符,让他们能够稍微格式化文本。

职位空缺存储在 MySQL 数据库中。

我所说的例子:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla quis quam sollicitudin, bibendum enim a, vulputate turpis.

Nullam urna purus, varius eget purus quis, facilisis lacinia nibh. Ut in blandit erat.

我希望在我的客户按键盘上的输入/返回时发生中断。

我们将不胜感激。

------------更新------------

好的,经过多次试验和错误,我得到了一些工作。 我在上传/操作代码中添加了这一行。

$description = nl2br(htmlspecialchars($_POST['description']));

完整的上传代码是:

<?php
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php");



$date = mysql_real_escape_string($_POST["date"]);
$title = mysql_real_escape_string($_POST["title"]);
$description = mysql_real_escape_string($_POST["description"]);
$description = nl2br(htmlspecialchars($_POST['description']));

// Insert record into database by executing the following query:
$sql="INSERT INTO hire (title, description, date) "."VALUES('$title','$description','$date')";
$retval = mysql_query($sql);


echo "The position was added to employment page.<br />
<a href='employment.php'>Post another position.</a><br />";

?>

然后在我的表单上,我将它添加到 textarea 中,但出现错误。 仅供参考,即错误所指的第 80 行。

Position Details:<br />
<textarea name="description" rows="8"><?php echo str_replace("<br />","",$description); ?></textarea>
</div>

这是错误的样子。

这是我的结果页面代码:

<?php
$images = mysql_query("SELECT * FROM hire ORDER BY ID DESC LIMIT 10");
while ($image=mysql_fetch_array($images))
{
    
    ?>
<li data-id="id-<?=$image["id"] ?>">
<div class="box white-bg">
<h2 class="red3-tx"><?=$image["title"] ?> <span class="date-posted blue2-tx"><?=$image["date"] ?></span></h2>
<div class="dotline"></div>
<article class="blue3-tx"><?=$image["description"] ?><br />
<br />

For more information please call ###-###-####.</article>
</div>
</li>
    <?php
}
?>

如果我删除所有错误副本并用换行符写出真实位置,它就可以工作。 我不知道如何解决这个错误。 再次感谢任何帮助。 谢谢!

【问题讨论】:

  • 将信息存入数据库时​​,查看运行nl2br()函数。
  • @Karl 这是错误的方法。 显示数据时使用信息nl2br()
  • 完全没有问题,前后用真的无所谓。
  • 在可以避免的情况下,为什么要将标签存储到数据库中。如果你想允许&lt;br&gt;,你也可以允许&lt;p&gt;,以及其他的东西。在标签剥离方面祝你好运。
  • 也许你想在我的回答中看到我的编辑来解决你的第二个问题

标签: php mysql line-breaks


【解决方案1】:

你可以使用str_replace

$statement = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla quis quam sollicitudin, bibendum enim a, vulputate turpis.

Nullam urna purus, varius eget purus quis, facilisis lacinia nibh. Ut in blandit erat."

$statement = str_replace(chr(13),"<br/>", $statement);

query example : INSERT INTO table (statement) VALUES ('$statement');

希望对你有帮助

编辑:

如果你想从数据库中的 textarea 显示结果,你可以使用这个代码

$des = $row['description'] //my assumption that your feild name at table inside mySQL is description

Position Details:<br />
<textarea name="description" rows="8"><?php echo str_replace("<br />",chr(13),$des); ?></textarea>
</div>

希望此编辑可以帮助您解决第二个问题

【讨论】:

  • 感谢您的帮助。我只是对在哪里添加 $des = $row['description'] 感到困惑,除了替换 textarea 中的 echo 之外,还有什么我需要删除的。另外,是的,字段名称是描述。
  • 似乎还是没明白。我将 $des = $row['description'] 添加到我的结果页面,但不确定我是否做得对。如果您不介意看一下,我会将我的代码发布在顶部。
  • 你的意思是你想把描述放在
    里面??
  • 大声笑你是什么意思..?你觉得我应该改成

【解决方案2】:

我会先回答几个问题

  • 我是否希望我的数据库存储 html 格式的用户输入?
  • 之后数据可以编辑吗?

由于您似乎只需要 nl2br,因此一种简单的方法是将内容按原样保存在数据库中,然后按照 Marcin Orlowski 的建议在输出端使用 nl2br()

【讨论】:

  • 回答您的问题 Q1:不确定将标签存储在数据库中是否真的有害? Q2:是的。我将在线程中尝试其中的一些解决方案。看看什么最适合我。
猜你喜欢
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
相关资源
最近更新 更多