|
|
|
| Всем добрый день. Столкнулся с такой незадачкой. Изменяю в texarea текст ставлю пробелы перед началом абзаца и делаю соответственно абзацы, но эти переносы и абзацы не сохраняются в базе, при выводе текст сплошняком выдается :( А если явно использовать в тексте <br> и , то все ок...При редактировании никаких обработок кода не произвожу на очистку от хтмл кода.
Вот собственно код, сначала выводит текст, а потом после редактирования изменяет в базе.
<?php
$res = mysql_query("SELECT * FROM `".PREFIX."index`")
or die ("Ошибка запроса №1 : adminpanel/index.php" . mysql_error());
$catrow = mysql_fetch_array($res);
$text = $catrow['text'];
if(!empty($_POST['index']))
{
$res2 = mysql_query("UPDATE `".PREFIX."index` SET text = '".$_POST['text']."'")
or die ("Ошибка запроса №2 : adminpanel/index.php" . mysql_error()); ;
header("location: ".DOMEN."/adminpanel");
}
?>
|
Прошу помощи. | |
|
|
|
|
|
|
|
для: TetRiska
(03.10.2009 в 16:00)
| | >Что случилось с тегом переноса и тегом отступа?
Вы их туда не поместили. | |
|
|
|
|
|
|
|
для: Trianon
(03.10.2009 в 16:05)
| | Ну, если переносы надо nl2br() обработать, то пробелы, по-моему, все равно поудаляются, если только не заменить их на тот же
Или есть и для этого функция?) | |
|
|
|
|
|
|
|
для: neadekvat
(03.10.2009 в 16:09)
| | конечно. str_replace() | |
|
|
|
|
|
|
|
для: Trianon
(03.10.2009 в 16:41)
| | > если только не заменить их на тот же
Значит, этот вариант? | |
|
|
|
|
|
|
|
для: Trianon
(03.10.2009 в 16:05)
| | Я заметил что их там нет, вопрос почему. | |
|
|
|
|
|
|
|
для: TetRiska
(03.10.2009 в 16:38)
| | потому что их и не было там никогда.
textarea не работает ни с какими тегами.
textarea работает с plain-text, а не с html | |
|
|
|
|
|
|
|
для: Trianon
(03.10.2009 в 16:43)
| | Ясно, ну тогда как написав такой текст:
Добро пожаловать!
Сегодня.............................мы планируем................................
открыть.....
Ждем всех желающих.
|
Сохранить в базу и чтобы он так же вывелся на странице? | |
|
|
|
|
|
|
|
для: TetRiska
(03.10.2009 в 18:12)
| | >Ясно, ну тогда как написав такой текст:
>Сохранить в базу и чтобы он так же вывелся на странице?
а как бы Вы это сделали безо всякого редактирования, без всякой базы?
Есть такой текст.
Добро пожаловать!
Сегодня.............................мы планируем................................
открыть.....
Ждем всех желающих.
|
Как вывести его на страницу? | |
|
|
|
|
|
|
|
для: Trianon
(03.10.2009 в 20:09)
| | TetRiska, ведь уже Вам посоветовали что сделать, используйте при выводе тег - nl2br()
Например:
<?
echo nl2br($text); // $text - это выводимый из бд текст
?>
|
p.s. Trianon - мучитель))))) Вечно вставляете мозги))) | |
|
|
|
|
|
|
|
для: Diplex
(03.10.2009 в 22:00)
| | По-моему, мучитель - тот, кто мозг выносит, а не вставляет.
Хотя, конечно, всё сильно зависит от того, в какой мере оценивающий оным прибамбасом укомплектован. | |
|
|
|
|
|
|
|
для: Diplex
(03.10.2009 в 22:00)
| | Испробовал, ввожу такое в texarea.....
Приветики мальчуганы!
Как живете поижваете?
Со мной все супер!
Пока
|
Все строки начинаются с абзаца, но строка "Со мной все супер!" не должна с абзаца начинаться :(
кстати поставил nl2br при апдейте.
$res2 = mysql_query("UPDATE `".PREFIX."index` SET text = '".nl2br($_POST['text'])."'")
or die ("Ошибка запроса №2 : adminpanel/index.php" . mysql_error()); ;
|
| |
|
|
|
|
|
|
|
для: TetRiska
(03.10.2009 в 23:33)
| | Что ж, теперь попробуйте несколько раз отредактировать запись. | |
|
|
|
|
|
|
|
для: Trianon
(03.10.2009 в 23:38)
| | Если сделать при выводе, то выводит все в строку...Если как сейчас, то при 1 апдейте добавляет тег абзаца, ну если не редактировать ничего, а клацать клацать, то много тегов переноса, но все таки редактировать если будут, то весь текст с тегами...И как сделать по разумному, чтобы ставило правильные теги? | |
|
|
|
|
|
|
|
для: TetRiska
(03.10.2009 в 23:44)
| | Вы не ответили на мой вопрос (03.10.2009 в 20:09) | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2009 в 00:02)
| | тот пример был написан просто так для наглядности | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 00:21)
| | В Вашем - может быть.
В моем вопросе - вовсе не для наглядности. Именно для того, чтобы вникнуть в суть процесса.
Но даже если вопрос для наглядности, и задан Вам - на него стоит отвечать, уж коль скоро Вы хотите, чтоб другие отвечали на Ваши вопросы. | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2009 в 00:25)
| | Начнем с начала...Когда я оформлял текст таким методом как указал, то выводит все в одну строку. Когда делаю при апдейте nl2br, то абзацы есть, но они везде. | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 00:53)
| | понятно. Отвечать не хотим. | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2009 в 01:09)
| | а Вы задайте вопрос как для первоклассника! а то не всегда уловишь полет вашей мысли. | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 01:17)
| | Вообще-то первоклассникам веб-девелопментом заниматься противопоказано.
Но если Вы ставите вопрос так - пожалуйста.
<?php
$text = " Добро пожаловать!
Сегодня.............................мы планируем................................
открыть.....
Ждем всех желающих.";
// .....
?>
|
допишите код, который просто выведет текст в браузер. В том виде, в котором, Вы его ожидаете увидеть. | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2009 в 01:25)
| | > Вообще-то первоклассникам веб-девелопментом заниматься противопоказано.
плюстыщапицот | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2009 в 01:25)
| | Так немного разобрался...Я применял nl2br не в том месте для вывода...Когда ввожу текст ставлю абзацы, они нормально срабатывают на странице, а когда ставлю пробелы, не действует, лишь когда ставлю принудительно, то отступы есть. | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 02:11)
| | Я бы посоветовал
$text = str_replace (' ', ' ', $text);
Да боюсь, опять бредом назовут. | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 02:22)
| |
$index = str_replace(' ',' ',nl2br($catrow['text']));
|
Вывело в сплошную линию. Вызов в шаблоне такой <?php echo $index ?> | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 02:35)
| |
<?
if ( !empty($_POST['text']) ) {
$text = $_POST['text'];
$text = str_replace (' ', ' ', $text);
$text = nl2br($text);
echo $text;
}
?>
|
И у меня вывело все переносы, все пробелы, которые я ввел в текстовое поле. | |
|
|
|
|
 59.6 Кб |
|
|
для: neadekvat
(04.10.2009 в 02:40)
| |
$res = mysql_query("SELECT * FROM `".PREFIX."index`") or die ("Ошибка запроса №1 : index/index.php" . mysql_error());
$catrow = mysql_fetch_assoc($res);
$text = $catrow['text'];
$text = str_replace (' ', ' ', $text);
$text = nl2br($text);
|
в шаблоне вывел <?php echo $text ?> Результат на картинке. + как выглядит в редакторе оформление | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 02:54)
| | А в базе то у вас текст как лежит?
Уж не сплошняком ли? | |
|
|
|
|
 78.7 Кб |
|
|
для: neadekvat
(04.10.2009 в 02:56)
| | нет...вот как в базе. см скриншот | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 02:57)
| | Мне так, для себя, поржать
А как скрипт должен узнать, где вы _хотите_ поставить дополнительные пробелы и сделать абзацы?
Обрабатывать надо тот текст, который только пришел из формы, а не тот, который вы сначала в бд занесли, а потом оттуда вытащили | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 02:59)
| | я приложил скриншот | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 03:01)
| | Что, вот так прямо и выглядит?
Вы там ручками ничего не подправляли, прежде чем скрин сделать?
У меня в бд все тексты лежат сплошняком друг к другу, и разделяют абзацы и лишние пробелы хтмл-тэги. | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 03:04)
| | ручками ничего не правил..выше к сказанному...обрабатывать текст нужно при добавлении его в базу? .т.е забил текст со всеми абзацами и отступами и занес? | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 03:06)
| | Вот ввели вы в форму текст
Отправили
Скрипт принял, обработал, поставил все пробелы и переносы
И только скрипт добавляет его в бд | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 03:10)
| | Если я верно понял, то все же при добавлению в базу, то:
if(!empty($_POST['index']))
{
$text = $_POST['text'];
$text = str_replace (' ', ' ', $text);
$text = nl2br($text);
$res2 = mysql_query("UPDATE `".PREFIX."index` SET text = '".$text."'") or die ("Ошибка запроса №2 : adminpanel/index.php" . mysql_error()); ;
header("location: ".DOMEN."/adminpanel");
}
|
Отступы ставит на сайте, но абзацев нет..в базе есть оба тега, и через чур много тега отступа, после каждого слова ставит :( | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 03:20)
| | А не проще ли оставить только
а в css сделать отсутпы для абзацов? | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 11:43)
| | Допустим я сделал так, убрал
// $text = str_replace (' ', ' ', $text);
|
и в CSS добавил
Тогда что поулчается, если не ставить принудительно текст в тег <p>Текст</p>, результата не увидим...а если поставим, то сам тег дает абзац неплохой + еще 1 абзац, выйдет не чоень красиво, а если убрать
// $text = str_replace (' ', ' ', $text);
//$text = nl2br($text);
|
и проставить вручную тег <p>Текст</p> да красиво но 2 минуса:
- всеравно большой отступ
- нужно вручную прописывать тег | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 13:25)
| | у пробелов тоже есть минусы:
1. можно поставить 5, можно 6 или 7
2. нужно заботиться о замене пробелов на перед выводом | |
|
|
|
|
|
|
|
для: ride
(04.10.2009 в 13:31)
| | перед выводом на страницу сделал
$text = str_replace (' ', ' ', $text);
|
сплошной текст всеравно | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 13:41)
| | И этот текст опять из бд? | |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 13:25)
| | Пользуйтесь редактором. Он за вас теги расставит. | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 02:22)
| | Да боюсь, опять бредом назовут.
))) Вот простейшее решение задачи Trianon'a
<pre>
<?php
$text = " Добро пожаловать!
Сегодня.............................мы планируем................................
открыть.....
Ждем всех желающих.";
echo $text;
// .....
?>
</pre>
|
| |
|
|
|
|
|
|
|
для: TetRiska
(04.10.2009 в 01:17)
| | Да обработайте сначала текст, а потом в запроси пихайте
От того, что вы еще одну переменную введете, процессор не взорвется
$text = nl2br($_POST['text']);
sql = "UPDATE ... = '{$test}' WHERE..."; | |
|
|
|
|
|
|
|
для: neadekvat
(04.10.2009 в 01:27)
| | >$text = nl2br($_POST['text']);
>sql = "UPDATE ... = '{$test}' WHERE...";
ну ведь чушь?
Зачем Вы человека с толку сбиваете - он и так едва плавает, а Вы явную лажу предлагаете. | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2009 в 01:33)
| | Если вы не про опечатку, то я вас не понимаю.
Да, пробелов не оставит, но строки то перенесет. | |
|
|
|