Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.170.21] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Есть довольно большая HTML-форма. Там только html-код, без PHP.
Но, как тогда сделать вывод ошибок при не правильном заполнении формы? На голову приходит механизм сессий... Но тогда эту страницу придётся переименовывать в *.php и добавлять туда "<?echo $error;?>"... Можно ли как-то по другому здесь обойтись? Саму ошибку нужно выводить вверху формы, при этом форма должна быть html и не использовать JavaScript. Похоже выход один - шаблоны (Smarty, Sigma). По другому никак? |
Сообщ.
#2
,
|
|
|
может быть это тебе подойдет?
http://webmascon.com/topics/technologies/13a.asp |
Сообщ.
#3
,
|
|
|
Цитата DMx @ А чем pure PHP не катит?Похоже выход один - шаблоны (Smarty, Sigma). Цитата DMx @ добавлять туда "<?echo $error;?>"... |
Сообщ.
#4
,
|
|
|
а яваскриптом совсем слабо ? или мы кроме PHP ничего не признаём ?
|
Сообщ.
#5
,
|
|
|
Цитата purpe @ А смысл? Всё равно пришедшие данные необходимо проверять на стороне сервера + JS может быть отключен. а яваскриптом совсем слабо ? |
Сообщ.
#6
,
|
|
|
Проверка заполнения формы до отправки как раз делается на JavaScript (это на 100% по его профилю), скрипт должен проверить данные уже после отправки. Обычно хватает только последнего, но и первое звено вовсе не исключено, т.к. не происходит перезагрузки страниц, что облегчает нагрузку и на клиент, и на сервер, и на канал, а иногда JS-проверка реализованная с динамическим изменением контента является одной из дизайн-функциональных задумок.
|
Сообщ.
#7
,
|
|
|
С выводом ошибок в форме я разобрался. Решил сделать всё на PHP.
Теперь другой вопросик... Ранее такого не делал, поэтому сейчас даже не представляю как... Так, предположим есть форма: <form action="bla.php" method=post> <input type=text name=user value="<?echo $_SESSION['user'];?>" /> <input type=text name=message value="<?echo $_SESSION['message'];?>" /> <select name=city> <option value="none">Не указан</option> <option value="Moscow">Москва</option> <option value="SPb">Питер</option> <option value="Omsk">Омск</option> <option value="Khimki">Химки</option> ... </select> <input type=submit value="Отправить" /> </form> Вот, предположим, юзер заполнил эту форму, но забыл написать своё имя. И нажал пимпу... Скрипт всё переработал и послал юзера назад, к форме. В форме поле message оказалось уже заполнено (с помощью сессий), а вот город в списке обнулился. Пришлось бедному юзеру заново выбирать в списке город... Что делать, если этот юзер злобный заказчик, который хочет, чтобы списки не обнулялись?.. |
Сообщ.
#8
,
|
|
|
Цитата DMx @ Выставить selected у нужного option Что делать |
Сообщ.
#9
,
|
|
|
SiMM
Да ты мне Америку открыл. Я понимаю, что нужно в зависимости от выбранного пользователем города в списке либо выводить " selected", либо не выводить. Но как это сделать? Есть такой вариант: писать в каждом <option>: <?if ($_SESSION['city']=="Moscow") echo " selected";?> Но такой вариант мне совершенно не нравится... |
Сообщ.
#10
,
|
|
|
DMx, что такое массивы и циклы месье неизвестно?
|
Сообщ.
#11
,
|
|
|
Лана, добавил массивчик и цикл... Стало лучше выглядить и меньше места занимать. Thxz, SiMM.
И, пожалуй, последний вопрос по формам... Хотя он не совсем в тему. Есть огромное количество чекбоксов (~400) у каждого должно быть имя такого вида: var_<число>. Как мне не отдаляться в медитации и не делать всё это вручную? Просто чекбоксы сами уже есть, а имён у них нет. Как это автоматизировать: <input type=checkbox name=var_1 value="..."> <input type=checkbox name=var_2 value="..."> <input type=checkbox name=var_3 value="..."> ... <input type=checkbox name=var_400 value="..."> |
Сообщ.
#12
,
|
|
|
Цитата DMx @ А зачем? Зачем усложнять себе жизнь, когда куда проще работать с формой видаЕсть огромное количество чекбоксов (~400) у каждого должно быть имя такого вида: var_<число>. <input type="checkbox" name="var[1]"> ... <input type="checkbox" name="var[400]"> <input type="checkbox" name="var[]" value="value1"> ... <input type="checkbox" name="var[]" value="value400"> <input type="checkbox" name="var[value1]"> ... <input type="checkbox" name="var[value400]"> |
Сообщ.
#13
,
|
|
|
SiMM
Точно, как-то я не подумал, о таком варианте. Отлично подходит. Спасибо. Однако сейчас неожиданно всплыла ещё одна проблема... Дело в том, что все эти чекбоксы, в моей форме, находятся в <iframe></iframe>, чтобы сильно много места не занимали (много ведь их). Но в этом случае пропадает связь с формой... Все эти имена и значения чекбоксов просто не передадутся скрипту, ведь они во фрейме. Можно как-то это обойти? |
Сообщ.
#14
,
|
|
|
Форма и ее элементы должны обязательно быть в одном фрейме (иначе придется изобретать шестиколесный велосипед на JavaScript). Так что либо откажись от фрейма, либо помести форму во фрейм целиком.
|
Сообщ.
#15
,
|
|
|
Чёрт, просто паршиво сморится тонна чекбоксов, расположенных друг над другом... Слишком много. Потому-то я и поместил их во фрейм. Яву использовать не хочу ни при каких обстоятельствах. |