Добавьте разрывы строк в mysql textarea

Я создал простую резервную область для моего клиента, чтобы публиковать новые вакансии и хотел дать им возможность немного отформатировать текст, добавив разрывы строк в текст описания работы, которые будут видны на переднем крае.

Вакансии хранятся в базе данных 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 />";

?>

Затем в своей форме я добавил это в текстовую область, но я получаю ошибку. К вашему сведению, это строка 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
}
?>

Если я удаляю всю эту ошибку, копирую и записываю реальную позицию с разрывами строк, это работает. Я понятия не имею, как исправить ошибку, хотя. Снова любая помощь будет оценена. Спасибо!

2 ответа

Решение

Ты можешь использовать 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');

надеюсь, это поможет вам

РЕДАКТИРОВАТЬ:

если вы хотите отобразить результат в текстовой области из базы данных, вы можете использовать этот код

$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>

надеюсь, что это изменение поможет вашей второй проблеме

Сначала я отвечу на пару вопросов.

  • Хочу ли я, чтобы моя база данных хранила ввод пользователя в формате html?
  • Будут ли данные редактироваться позже?

Поскольку вам кажется, что вам нужен только nl2br, простой подход заключается в том, чтобы сохранить содержимое как есть в базе данных, а затем использовать nl2br() на стороне вывода, как предложил Марцин Орловски.

Другие вопросы по тегам