在mysql textarea中添加换行符

时间:2013-11-24 11:15:35

标签: php mysql line-breaks

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

职位空缺存储在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.

我希望当我的客户端在键盘上输入/返回时发生休息。

对此事的任何帮助都将不胜感激。

------------ ------------ UPDATE

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

$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,但是我收到了一个错误。 FYI是错误所指的第80行。

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

这是错误的样子。

enter image description here

这是我的结果页面代码:

<?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
}
?>

如果我删除所有错误副本并写出带换行符的实际位置,则可以正常工作。 我不知道如何修复错误。 再次任何帮助将不胜感激。 谢谢!

2 个答案:

答案 0 :(得分: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>

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

答案 1 :(得分:1)

我首先回答几个问题

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

由于您似乎只想要nl2br,一种简单的方法是保存数据库中的内容,然后在输出端使用nl2br(),如Marcin Orlowski建议的那样。