|
|
|
| Добрый день!
Подскажите п-ста, как решить следующую проблемку: имеется форма регистрации фирм, в которую вносится помимо названий, телефонов и т.д. фотографии.
После заполнения пользователем формы, данные проверяются на корректность. Если какие-то данные введены неправильно, выводится текст ошибки, а также форма с уже введеными ранее данными. Например:
<input type="text" name="shortname" class="reg" value="<?php echo $_POST['shortname']; ?>"/>
|
Подскажите п-ста, к в заполненный ранее элемент
<input type="file" name="logo" class="reg" />
|
подставить ранее введенное значение, причем чтобы когда форму опять подтвердят - подтянулся необходимый файл? | |
|
|
|
|
|
|
|
для: rolling
(12.02.2010 в 13:44)
| | Атрибут value поля типа file только для чтения! Нельзя в него что-то подставить. | |
|
|
|
|
|
|
|
для: sim5
(12.02.2010 в 13:49)
| | а есть какие-то другие варианты решения такого вопроса, чтобы пользователя не напрягать загрузкой файлов по несколько раз? | |
|
|
|
|
|
|
|
для: rolling
(12.02.2010 в 13:54)
| | Нет! Какие могут быть варианты, если не разрешено пользователю самому указывать значение этого поля? | |
|
|
|
|
|
|
|
для: rolling
(12.02.2010 в 13:44)
| | Делайте проверку "на лету" с помощью js - всяко лучше, чем через анальное отверстие пытаться (только время убъете) вставить значение в type="file" | |
|
|
|
|
|
|
|
для: neadekvat
(12.02.2010 в 14:00)
| | JS - это сервис, рекомендации, не более того - все проверки только на сервере! | |
|
|
|
|
|
|
|
для: sim5
(12.02.2010 в 14:02)
| | Естессно, я же не сказал, что нужно удалить все "ненужно" из кода на сервере =)
Я к тому, что если проверка будет "на лету", то соответственно в поле file сохранится выбранный файл.
Если кто-то отрубает js, обходит стороной и еще что-то мутит - нажмет кнопочку Обзор еще раз. это вообще не такая уж сложная задача, современные браузеры запоминают последнюю папку, из которой был выбран файл - так что проблема высосана из пальца и стоит на это забить. | |
|
|
|
|
|
|
|
для: neadekvat
(12.02.2010 в 14:08)
| | JS примочка, сервер проверка - при ошибках ввода серверу возвращать форму пользователю с ошибками и уже введенным, так что с файлом уже не получится.... Так что включен JS, не включен JS, это уже рояль не играет ) | |
|
|
|
|
|
|
|
для: sim5
(12.02.2010 в 14:29)
| | Гм..объясняю еще раз.
Например, у нас есть два поля:
Имя, Аватар. При том, имя можно вводить только латинскими буквами.
И вот я ввожу имя "Неадекват", выбираю на компе свой аватар. И вот если будет использован js - то мне сразу вылезет ошибка, дескать, имя перепишите, при этом заново нажимать "обзор" в поле "аватар" уже не нужно.
А если без js - то страница перезагрузится, я весь в ожидании окончания регистрации, а получаю страницу с ошибкой. Теперь то "обзор" нажимать придется (но это все-таки не проблема)
Так понятнее?) | |
|
|
|
|
|
|
|
для: neadekvat
(12.02.2010 в 18:02)
| | Это все сервис для совестливых пользователей... Это понимаю, остального нет. Вот я об этом. | |
|
|
|
|
|
|
|
для: rolling
(12.02.2010 в 13:44)
| | 1 Вариант
проверять все поля JS в том числе и поле загрузки файла(выбрано ли файл [ фотография] и его допустимое расширение) ,если всё верно разблокировать кнопку субмит
отправить данные на сервер ,там их проверить ,если что то не верно выдать сообщение о ошибке ,вставить валидированные записи в поля (value="<?php echo htmlspecialchars($_POST['shortname']) ?>") а те что не верные оставить пустыми и выдать по ним ошибку ,удалить загруженный файл.
2 Вариант
использовать Аякс .
Передать данные формы скрипту ,в случае ошибки вывести сообщения по полям ,а файл(загруженный на сервер),если это фото юзера,можно вывести во фрейме рядом с полем выбора фото,с возможностью его редактирования(удаления,замены)
3 Вариант комбинировать
добавить проверку на клиенте во втором варианте по полям можно JS можно с помощью аякса
Основную проверку делать ОБЯЗАТЕЛЬНО на сервере! | |
|
|
|
|
|
|
|
для: rolling
(12.02.2010 в 13:44)
| | Сохранить файл на сервере а в форме показать уже само изображение. | |
|
|
|