Прошу помочь в правильной реализации

kimka999

Постоялец
Регистрация
21 Мар 2013
Сообщения
41
Реакции
24
Подскажите плз как грамотно реализовать такую штуку на php:

У меня есть форма, в которую люди забивают данные.

В это форме есть проверки на разные уникальные значения (делаю на стороне php) После того, как нажимают отправить должна открываться страница PREVIW, где выведены все данные. Если ОК, то эти данные уходят в базу. Если нет, то возвращаются на страницу формы, где подставлены данные и редактируют их и опять на страницу превью )


У меня самый главный затык в том, чтобы корректно возращаться на страницу с формой и подставлять туда старые данные. Попытался сделать через глобальную переменную SESSION, но с ней возни много, так как нужно делать много дополнительных проверок и очищать вовремя (очищать тоже что-то не получается, хотя делаю это ajax при нажатии на клавишу)
 
Данные на страницу с формой же отправляй.

<form action="" method="POST"></form>

И код:
HTML:
<?php echo $messages; ?>
<form action="" method="POST">
<input name="title" value="<?php echo isset($_POST['title']) ? htmlspecialchars($_POST['title']) : ''; ?>
<input type="submit" value="Отправить" />
</form>

Работа с отправленными данными перед генерацией HTML. Всё, что надо вывести, помещаем в $messages. Иначе, $messages - пусто
 
Велосипедом попахивает...
возможно, воспользоваться готовым решением, например из php-фреймворка?
Почему? - в дальнейшем избавит от многих "подводных камней".
На текущий момент выбор решений достаточен. Погуглить + здесь можно откопать: Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Подскажите плз как грамотно реализовать такую штуку на php:

У меня есть форма, в которую люди забивают данные.

В это форме есть проверки на разные уникальные значения (делаю на стороне php) После того, как нажимают отправить должна открываться страница PREVIW, где выведены все данные. Если ОК, то эти данные уходят в базу. Если нет, то возвращаются на страницу формы, где подставлены данные и редактируют их и опять на страницу превью )


У меня самый главный затык в том, чтобы корректно возращаться на страницу с формой и подставлять туда старые данные. Попытался сделать через глобальную переменную SESSION, но с ней возни много, так как нужно делать много дополнительных проверок и очищать вовремя (очищать тоже что-то не получается, хотя делаю это ajax при нажатии на клавишу)
Я обычно делаю так.
В форме в инпутах name имеет значение ключей массива.
HTML:
<input class="form-control" name="fncatstore[name]" size="30" value="" type="text">
<input class="form-control" name="fncatstore[address]" size="30" value="" type="text">
На стороне сервера — в базе данных такие же ключи как в форме.
При отправке и валидации, если поле неправильно заполнено, нет проблемы вернуть клиенту в форме введённое значение, чтобы он исправил.
А выше неправильного — предупреждение.
Валидация при запросе в БД при применении массивов кстати тоже упрощается:
PHP:
$stores= array_map('mysqli_escape_string',$_POST['fncatstore']);
Формирование запроса в БД — тоже проще.
Извините, что не привожу больше кода — писать много лень, а копипаст не получится, т.к. формы у меня формируются с помощью класса.
 
Последнее редактирование:
Мне кажется вы саму задачу неправильно ставите. Делаете форму в ней валидация js'ом. При отправке формы на стороне php делаете ту же валидацию. Если валидация прошла - пишем в базу, если нет перезагружаем страницу. Если записало в базу - показываем страницу на которую будут вывлдится данные с базы. Как то так. А вообще (кто то ранее вам советовал) использовать framework, yii2 советую.
 
Чтоб не создавать новую тему напишу тут. Тема немного и совпадает только вопрос таков - Есть желающие помочь ответами на детские/дурацкие и тд. вопросы в сфере php. Со своей стороны обещаю часто и назойливо доставать, своими вопросами.
 
Назад
Сверху