Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Предосмотр новости перед публикацией 
V
    Опции темы
AtomoS
  Дата 1.1.2010, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Приветствую всех.
Недавно начал писать новостной модуль, ничего особенного из себя не представляющий.

На страничке добавления хочу ввести функцию "Предосмотра новости перед публикацией",
но ума не приложу как это сделать, чтобы не потерять данные из формы добавления новости.

Вот страница для добавления новости:
Код

    if($_POST['add'] =='') {

    echo "<hr><p><form enctype=\"multipart/form-data\" method=post action=\"?page=admin&act=news&command=add\">
    <table width=\"450\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
    <tr><td>Название:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"title\"></td>  </tr>
    <tr><td>Автор:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"autor\"></td></tr> 
    <tr><td>Дата:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"posted\"></td></tr>
    <tr><td>Содержание:</td><td><textarea class=\"input\" name=\"body\" rows=\"10\" cols=\"45\"></textarea></td></tr>
    <tr><td>Отображать:</td><td><input type=\"checkbox\" name=\"hide\"></td></tr>
    <tr><td>&nbsp;</td><td><input type=\"submit\" name=\"add\" value=\"Добавить новость\"> <input type=\"submit\" name=\"preview\" value=\"Предварительный просмотр\"></td></tr>
    </table>
    </form></p>";
    }

    else {

    $title = $_POST['title'];
    $body = nl2br($_POST['body']);
    $posted = $_POST['posted'];
    $autor = $_POST['autor'];
    $hide = $_POST['hide'];
    $showhide = $_POST['hide'] ? 'show' : 'hide';

    //Выполняем запрос
    $query = @mysql_query ("INSERT INTO `light_news` VALUES ('', '".$title."', '".$body."', '".$posted."', '".$autor."', '".$showhide."');");
    if($query) {echo "<head><meta http-equiv='Refresh' content='3; url=?page=admin&act=news'></head><hr><p class=\"block\"><strong>Поздравляем!</strong> Новость успешно добавлена, переадресация через 3 секунды.</p>";} else {echo '<hr><p class="block"><strong>Ошибка!</strong> Невозможно добавить новость.</p>';}

    }


Данные из формы должны быть выведены на новой страничке, возможно через эхо:
Код

echo "<h2>$title</h2>
        <p class=\"timestamp\">Опубликовано $posted by $autor</p>
        <p>$body</p>";


Будьте любезны подсказать как сделать такую фичу.
Если есть варианты исправления моего ###кода - пишите.

 smile 

Это сообщение отредактировал(а) AtomoS - 1.1.2010, 07:28
PM MAIL   Вверх
Simpliest
Дата 1.1.2010, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Код

$values = array(
    'какое-то имя1' => null,
    ....
    'какое-то имяН' => null,
);

// если был POST заполняем данные
if (count($_POST)) {
    $values = чего_то_там_фильтр($_POST);
    // тут что-то делаем
    if(все понравилось и Ок) {
        $showForm = false;
    } else {
        $showForm = true;
    }
}

if ($showForm) {
    echo '<input name="какое-то имя1" value="' . $values['какое-то имя1'] . '">';
    ...
    echo '<input name="какое-то имяН" value="' . $values['какое-то имяН'] . '">';
}
die();

// просто пример фильтрации
function чего_то_там_фильтр($data) {
    $result = array();
    $exclude = array('капча', 'шмапча');
    foreach($data as $key => $val) {
        if(!in_array($key, $exclude)) {
            $result[$key] = htmlspecialchars($val);
        }
    }
    return $result;
}



--------------------
user posted image
PM   Вверх
AtomoS
Дата 1.1.2010, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Simpliest, оу. ничего не понял (
PM MAIL   Вверх
Simpliest
Дата 1.1.2010, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Это был ответ на
Цитата(AtomoS @  1.1.2010,  06:22 Найти цитируемый пост)
чтобы не потерять данные из формы добавления новости


Надеюсь, вывести данные на предпросмотр у тебя проблем нет?


--------------------
user posted image
PM   Вверх
AtomoS
Дата 1.1.2010, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Simpliest, в этом и заключается проблемма)
PM MAIL   Вверх
segrey
Дата 1.1.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 26.12.2006

Репутация: нет
Всего: нет



На $_POST['preview'] выводи точно такую - же форму, только заполненную. Если форма в превью дизайном не предусмотрена, сделай скрытой, оставив сабмит как кнопку для подтверждения публикации.

Или держать в сессии.

Это сообщение отредактировал(а) segrey - 1.1.2010, 11:55
PM MAIL   Вверх
Simpliest
Дата 1.1.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(AtomoS @  1.1.2010,  10:39 Найти цитируемый пост)
Simpliest, в этом и заключается проблемма) 

Т.е. 
Код

echo $_POST['чего-то-там'];

для тебя проблема?



--------------------
user posted image
PM   Вверх
AtomoS
Дата 1.1.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Simpliest, no.

Это сообщение отредактировал(а) AtomoS - 1.1.2010, 15:12
PM MAIL   Вверх
AtomoS
Дата 2.1.2010, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



можно хоть пример привести рабочий?
а то как бы не понимаю ничего(
PM MAIL   Вверх
Simpliest
Дата 2.1.2010, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(AtomoS @  2.1.2010,  11:43 Найти цитируемый пост)
можно хоть пример привести рабочий?


Цитата(AtomoS @  1.1.2010,  14:11 Найти цитируемый пост)

Эта веб-обвязка является исключительно примером, но не рабочим вариантом для полноценного игрового сервера LineAge2.

Но тем не менее на её примере вы можите научиться делать собственные сайты, возможно даже лучше моих (теоритически) smile

Разве мы можем что-то посоветовать?

P.S.Мы дали практически рабочий каркас. Надо лишь разобраться что делают каждые 5ть строчек. И подставить свое.
Плюс вставить вывод предпросмотра при помощи echo.




--------------------
user posted image
PM   Вверх
IgorIV
Дата 2.1.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



http://www.htmlbook.ru/html/input.html
Используем значение value для отображения уже введёных данных. Ещё можно воспользоваться disabled для запрета изменения данных.

<tr><td>Название:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"title\" value=\"$title\"></td>  </tr>
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0802 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.