Как сохранить все что в form после перезагрузки страницы?

12 3
L
На сайте с 18.02.2012
Offline
83
2790

Здравствуйте, сайт на фраемворке kohana 3.1

Сделал добавление новостей на сайт в админке.

В разделе form, в form input, celect, textarea, загрузка картинок,

<input type="file" title="Загрузка главной фотографии" multiple name="images[]" id="multi" />

Стоит валидация в моделях, если не заполнил важные поля, но нажал на кнопку отправить, то он перезагружает страничку и появляется валидация которая пишет что не все поля заполнены и т.д

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

Что я пробовал, я пробовал вставлять код в поля input, celect, textarea

(value="<?=@$_POST['prdes']?>"

Данный код работает только на input, после перезагрузки сохраняет то что там писал.

На celect, textarea и выбор фотки для загрузки не срабатывает 

CP
На сайте с 12.08.2009
Offline
101
#1

Так сделайте валидацию на javascript самый просто способ. Если по вашему то еще сложней будет и без javascript не обойтись, но ставить обработчики на изменение полей input и других и после изменения значения записывать к примеру в сессии, но гемороя намного больше, чем просто подключить и настроить плагин jquery для валидации.

Профессиональный frontend: JS, html,css, Single-Page App (/ru/forum/964386)
siv1987
На сайте с 02.04.2009
Offline
427
#2

На select нужно ставить selected. textarea парный тег в котором значение указывается внутри него.

L
На сайте с 07.12.2007
Offline
351
#3
l17l:
На celect, textarea и выбор фотки для загрузки не срабатывает

На выбор файла(фотки) - не будет срабатывать из-за ограничений безопасности. Выбрать файл можно только действиями в браузере со стороны пользователя.

Иначе бы с любой формой можно было в скрытых полях тайно собирать и отправлять файлы с компа пользователя.

A
На сайте с 30.04.2014
Offline
28
#4

Можешь использовать ajax и куки, запрос отсылать по focusout.

IW
На сайте с 16.12.2014
Offline
73
#5
l17l:
то он перезагружает страничку и появляется валидация которая пишет что не все поля заполнены и т.д

21 век на дворе)) юзай jQuery validate например, или свою проверку пиши на ajax, только без перезагрузки страницы...

зы. Вчера заметил на youtube ajax сломался, когда комменты разворачиваешься страница перезагружается, такой маразм 🤣

SSD VPS скидка 25% по купону iwork https://cp.inferno.name/cart.php?gid=23 | надежный хостинг http://bit.ly/2Yiq93h
D
На сайте с 02.02.2010
Offline
133
#6
Вчера заметил на youtube ajax сломался, когда комменты разворачиваешься страница перезагружается, такой маразм

У меня постоянно так, я думал они спецом так сделали, иногда прям бесит.

K
На сайте с 03.06.2015
Offline
45
#7

Валидация на клиенте ничтожна как валидация, это всего лишь сервис и экономия ресурсов сервера. Запомните господа что браузера может вообще не быть там, где вы его подразумеваете. Из вижуалбасика можно отгрузить какие хочешь заголовки вашему серверу и он обязан там во всем разобраться не полагаясь на браузерные скрипты.

---------- Добавлено 20.07.2015 в 09:09 ----------

l17l:

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

Можно вернуть в форму все полученные запросом данные кроме файлов. Файлы придется выбирать еще раз.

Что касается селектов и прочих чек-боксов, то рендер должен получать что было запрошено и выдавать сразу соответственно выбранный опции. Это стандартные процедуры для паттернов с редиректом и перезагрузкой.

Я тут где-то постил такой код в частности для селектов.

Решение: отгружайте аяксом, тогда весь выбор останется в браузере неколебим, а по результатам проверки скрипт на сервере вернет либо данные для обновления формы (прочитав их после записи для верности), или сообщение об ошибке.

---------- Добавлено 20.07.2015 в 09:14 ----------

Вот он код /ru/forum/comment/13779483 для силектов

MYSQL PHP JS HTML CSS SEO TXT США СССР
artemmian
На сайте с 27.12.2013
Offline
15
#8
l17l:
Что бы вся форма после перезагрузки страницы сохранилась?

Сессии на php пробовали?

Заходите на мой сайт: http://artemmian.ru (http://artemmian.ru) и узнаете много интересного о DLE и мира IT
K
На сайте с 03.06.2015
Offline
45
#9

Сессии тут не нужны. Полученные данные действительны в той же сессии, то есть их можно брать прямо из $_POST или что там ТС юзает.

L
На сайте с 18.02.2012
Offline
83
#10
Ladycharm:
На выбор файла(фотки) - не будет срабатывать из-за ограничений безопасности. Выбрать файл можно только действиями в браузере со стороны пользователя.
Иначе бы с любой формой можно было в скрытых полях тайно собирать и отправлять файлы с компа пользователя.

Так я же первый раз выбрал фаил, а после отправил новость, но вылезла валидация после перезагрузки страницы, так как не все поля заполнил, то действия выбора сохранить не как?

---------- Добавлено 20.07.2015 в 17:29 ----------

siv1987:
На select нужно ставить selected. textarea парный тег в котором значение указывается внутри него.

Приведите пожалуйста пример, пока не понимаю вас.

---------- Добавлено 20.07.2015 в 17:32 ----------

kostyanet:
Сессии тут не нужны. Полученные данные действительны в той же сессии, то есть их можно брать прямо из $_POST или что там ТС юзает.

ну так $_POST работает только для импута, может как то можно для всей формы сделать.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий