[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перенос строки (Mysql + textarea)
inpost
Дело так:
обычный textarea в форме, туда текст заполняю, потом вставляю это всё в базу данных, оттуда пытаюсь достать - а переносов нет. Текст такой:

Сегодня 3 января.
Завтра 4-ое.
Послезавтра 5-ое.</span>


Подскажите, как это осуществить, как правильно добавить в базу данных, и как достать оттуда информацию, чтоб отображалась с переносами (echo $a;)



Спустя 23 минуты, 46 секунд (3.01.2010 - 21:34) ИНСИ написал(а):
inpost можно сделать двумя способами:

1. str_replace
2. спец. функцию n2blr() (использовать лучше, конечно, эту спец. функцию)
$text = nl2br($_POST['text'];
echo $text; // выведет с пробелами

Спустя 24 минуты, 19 секунд (3.01.2010 - 21:58) inpost написал(а):
спасибо, все работает!

Спустя 5 дней, 20 часов, 32 минуты, 13 секунд (9.01.2010 - 18:30) Platinum написал(а):

<textarea wrap='physical'>...</textarea>

А так разве никак?)))

Спустя 2 часа, 52 минуты, 14 секунд (9.01.2010 - 21:22) sergeiss написал(а):
Цитата (inpost @ 3.01.2010 - 22:10)
оттуда пытаюсь достать - а переносов нет

А каким образом это проверялось, интересно узнать?

Спустя 20 минут, 56 секунд (9.01.2010 - 21:43) inpost написал(а):
sergeiss
Просто доставал так:
echo $myrow['text'];
теперь:
echo nl2br($myrow['text']);

Ну я же говорил, что знания дырявые! smile.gif) Просто не знал про nl2br

Спустя 16 минут, 37 секунд (9.01.2010 - 22:00) sergeiss написал(а):
inpost - вопрос немного о другом был: ГДЕ ты делал ранее вывод, без функции nl2br? Просто ЭХО и всё? Или внутри textarea? Похоже, что вывод был вне textarea.
Вопросы не праздные, а принципиальные. Потому что если ты ввел текст в texarea, то для сохранения форматирования и выводи его в textarea, для этого не надо никаких дополнительных функций.

Спустя 2 часа, 24 минуты, 11 секунд (10.01.2010 - 00:24) inpost написал(а):
Это был не textarea =)
В обычном диве или таблицах вставлял информацию, просто эхо и всё! =)
Ты имеешь ввиду textarea за пределами форм? Просто в любом месте, где нужно вставить текст?

Спустя 1 час, 13 минут, 13 секунд (10.01.2010 - 01:37) sergeiss написал(а):
Цитата (inpost @ 10.01.2010 - 01:24)
Ты имеешь ввиду textarea за пределами форм? Просто в любом месте, где нужно вставить текст?

Именно так! smile.gif

Вот простейший (рабочий!) пример:
Форма
<form action="" method="post" enctype="multipart/form-data">
<textarea
id="tarea" name="tarea"><?php if( isset( $_POST['tarea'] ) ) echo htmlspecialchars( $_POST['tarea'] ); ?></textarea>
<input
type="submit" />
</form>

И следом за ней тут же показ данных (вне формы!)
if( isset( $_POST['tarea'] ) )
echo 'Inserted <textarea>'.htmlspecialchars( $_POST['tarea'] ).'</textarea>';

Спустя 3 часа, 26 минут, 14 секунд (10.01.2010 - 05:04) Gabriel написал(а):
sergeiss
ведь человек не в textarea достает

Спустя 6 часов, 45 минут (10.01.2010 - 11:49) sergeiss написал(а):
Цитата (Gabriel @ 10.01.2010 - 06:04)
sergeiss
ведь человек не в textarea достает

Так я про то и говорю ему, что лучше в textarea выводить, дабы не мудрить с переносами... И, судя по его вопросу о textarea за пределами форм ("Ты имеешь ввиду textarea за пределами форм? Просто в любом месте, где нужно вставить текст?"), он думал, что этот элемент может быть только в форме. Или я что-то не так понял?

Спустя 20 минут, 47 секунд (10.01.2010 - 12:09) inpost написал(а):
Именно, я всегда textarea воспринимал только как в формах, за пределами не слышал, а может мимо ушей пропускал. Надо будет попробовать =)

Тогда другой вопрос, разница тогда какая, что я вывожу как:
echo 'Inserted <textarea>'. $_POST['tarea'] .'</textarea>'; 

или
echo nl2br($_POST['tarea']);


Разве второй вариант не меньше по объему?

Спустя 8 минут, 53 секунды (10.01.2010 - 12:18) inpost написал(а):
аааа, все, догнал разницу! В данной ситуации мне нужно было именно nl2br, так как это был обычный див для вывода полностью статей с редактированием некоторых его участков через "css" =)

Спустя 4 минуты, 43 секунды (10.01.2010 - 12:23) sergeiss написал(а):
inpost - разница в том, что в первом случае создается объект textarea, в котором выводится текст. Ты можешь назначить стиль этому объекту, указать какую-то позицию. Ты сам указываешь ширину и высоту. То есть, у тебя есть полный контроль над данными.
Во втором случае просто выводится текст в каком-то месте.

И при чем тут объем? Да и посчитать еще надо, что меньше smile.gif Потому что 1 байт знака "перевод строки" переводится в 4 байта тэга "<br>".
Чем больше строк, тем меньше разница. По достижении всего нескольких строк во втором случае будет уже больше объем.
Так что на объем не смотри.

Ну, если тебе удобнее второй вариант по какой-то причине - то и хорошо smile.gif Главное, чтобы ты сам понимал разницу.

Цитата (inpost @ 10.01.2010 - 13:09)
всегда textarea воспринимал только как в формах, за пределами не слышал, а может мимо ушей пропускал

Кстати говоря, это относится не только к textarea.

Спустя 9 дней, 38 минут, 10 секунд (19.01.2010 - 13:01) don_san40 написал(а):
всем добрый день. позвольте развить данную тему. через textarea в форме идет запись в таблицу sql, на другой страничке эту же запись можно увидеть в обычной таблице и при желании отредактировать через textarea. так вот при создании записи если нажать ентер, то эту запись можно увидеть в выводимой таблице, но нельзя отредактировать. она даже не вызывается в текстэреа.
сейчас попробовал использовать ф-цию nl2br - выводит так как надо (т е с переносами) однако ругается при попытке запихнуть это все в таблицу
$sql=mysql_query("SELECT * FROM news");
while($record=mysql_fetch_array($sql))
{
$rec=$record['text'] ;
echo '<tr><td>' nl2br($rec); '</td> <td> <a href="editor.php?page_title='.$record['text'].'"> <img src="images/blog_compose.png"></a></td></tr>';
}

помогите пожалуйста разобратся!

Спустя 47 минут, 35 секунд (19.01.2010 - 13:49) Gabriel написал(а):
don_san40
во-первых текстового поля не вижу
во-вторых *_fetch_array (если не пользуемся числовыми ключами ) меняем на _fetch_assoc
в-третьих перед nl2br и после поставь точку и убери точку с запятой
ну походу если все это сделаешь должно работать
sergeiss
а как-же тогда быть тем у кого версия пыха меньше 5.3 и по доктайпу должно быть <br>?
ненужно биты экономить где не-попадя а-то ша нас тут по-закидывают любители всяких минфи css/js smile.gif

Спустя 16 минут, 30 секунд (19.01.2010 - 14:05) Dron19 написал(а):
Попробуй функцией wordwrap(); если не знаешь как ей пользоваться, то иди в мануал и читай про неё.

Спустя 1 минута, 1 секунда (19.01.2010 - 14:06) Dron19 написал(а):
Но она для перевода строк по количеству символов.

Спустя 17 минут, 12 секунд (19.01.2010 - 14:24) Gabriel написал(а):
Dron19
ух-ты я про нее и не знал laugh.gif так не сравнивай \n в <br> и когда нужно порвать/перенести строку, просто до пыха 5.3 nl2br не имеет второго параметра

Спустя 21 час, 37 минут, 41 секунда (20.01.2010 - 12:01) don_san40 написал(а):
Цитата (Gabriel @ 19.01.2010 - 10:49)
don_san40
во-первых текстового поля не вижу
во-вторых *_fetch_array (если не пользуемся числовыми ключами ) меняем на _fetch_assoc
в-третьих перед nl2br и после поставь точку и убери точку с запятой
ну походу если все это сделаешь должно работать

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

<form action="editor.php" method="post">
<
table width="571" align="center">
<
tr>
<
td align="center" colspan="2"><textarea name="text_edit" cols="80" rows="15"><? echo "$content"; ?></textarea></td>
</
tr>
<
tr >
<
td width="20" align="center"><input name="save" type="submit" value="Редактировать"></td>
<
td width="20" align="center"><input name="delete" type="submit" value="Удалить"></td>
</
tr>
</
table>
</
form>
<
table border="1" align="center" id="list_news_editor">
<?php
$sql=mysql_query("SELECT * FROM news");
while($record=mysql_fetch_assoc($sql))
{
echo '<tr><td>' .nl2br($record['text']). '</td> <td> <a href="editor.php?page_title='.$record['text'].'"> <img src="images/blog_compose.png"></a></td></tr>';
}
?>
</table>

Спустя 1 час, 10 минут, 35 секунд (20.01.2010 - 13:12) Gabriel написал(а):
don_san40
какой запрос на редактирование? я его и близко не вижу, вижу только 2 вывода и даже не представляю что в переменной контент может быть.
З.Ы. С переменной $content кавычки убери они так никому ненужны

Спустя 7 минут, 13 секунд (20.01.2010 - 13:19) arlamar написал(а):
да кто ж передает титлы в урл?
href="editor.php?page_title='.$record['text'].'"

обычно передаётся id

Спустя 9 минут, 29 секунд (20.01.2010 - 13:28) Gabriel написал(а):
arlamar
епржст во я пробаянил smile.gif истину глаголиш

Спустя 17 минут, 30 секунд (20.01.2010 - 13:46) don_san40 написал(а):
Gabriel

arlamar

а если нет id?


Спустя 5 минут, 19 секунд (20.01.2010 - 13:51) Gabriel написал(а):
don_san40
ну должен-же быть какойлибо уникальный параметр у новости

Спустя 2 часа, 23 минуты, 50 секунд (20.01.2010 - 16:15) don_san40 написал(а):
Gabriel, arlamar спасибо, сделал. пришлось добавить столбец auto_increment и привязаться к нему



_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.