Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/32: Рейтинг темы: голосов - 32, средняя оценка - 4.69
Sultan
1

Нужно сделать все поля на форме обязательными к заполнению

26.02.2007, 14:31. Показов 6059. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю Гуэст бук, создал две страницы: с демонстрацией всех сообщений и с вводом сообщения. На странице ввода сообщения форма которая отправляет инфу в БД, а страница демонстрации сообщений вытаскивает всю инфу из БД. Когда заполняешь форму проигнорировав (не заполнив) какое-либо поле и жмешь сабмит выскакивает следующее:

Microsoft OLE DB Provider for ODBC Drivers error ''80004005''

[Microsoft][ODBC Microsoft Access Driver] Field ''GuestBook.Email'' cannot be a zero-length string.

about_gb-form.asp, line 49

Как сделать, что бы гость не мог проигнорировать не все поля формы, а только некоторые, при этом происходил бы редирект на отдельную страницу (скажем, error.html) ?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2007, 14:31
Ответы с готовыми решениями:

Нужно, чтобы некоторые поля в форме были обязательными к заполнению.
У меня есть база данных ACCESS которая заполняется из ASP-формы. При нажатии кнопки 'Отправить' все...

Как сделать все поля обязательными к заполнению
Здравствуйте. Помогите как тут сделать все поля обязательными к заполнению: Если нужно скину...

Сделать так, чтобы при нажатии кнопки все поля в форме DBGrid заполнились
Есть форма для DBGrid, чтобы заполнить поля. Теперь мне необходимо чтобы при нажатие кнопки все...

Условие, чтобы , к примеру ПОЛЯ --лицевой счет-- и --фио клиента-- были обязательными
Добрый день , можно ли , как то сделать , чтобы , к примеру ПОЛЯ --лицевой счет-- и --фио клиента--...

15
0 / 2 / 3
Регистрация: 27.03.2012
26.02.2007, 14:43 2
Для этого сделай проверку перед тем, как сделать запись в БД:

email = Request.Form('email')
if email='' then Response.redirect ('error.html')

где 'email' - это имя <input> в форме.
0
Sergik
26.02.2007, 15:58 3
Можно сделать на стороне сервера, а можно и на стороне клиента, пример:
HTML5
1
2
3
4
5
<form action='add.asp' method='post'>
<input type='text' name='FIO'>
<input type='text' name='Email'>
<input type='button' onclick='if (FIO.value=='''' || Email.value=='''') {alert(''Заполните обязательные поля'')} else {form.submit()}'>
</form>
При таком варианте пользователь нажмет на ОК в окошке предупреждения и продолжит заполнение формы, причем все уже введенные значения сохранятся и перезагрузки страницы не произойдет. Хотя сразу же оговорюсь, что если клиент отключил JavaScript, то это не сработает, но я, например, не обращаю на это внимание, так как без JS все равно ничего путного не напишешь. Вариант, предложенный ранее это ограничение обходит, но там теряются все значения, и происходит перезагрузка страницы, так что выбирайте!
(можно и при отключенном JS такую проверку 'рабочей' сделать, для этого надо и на стороне сервера и на стороне клиента проверку делать, а еще использовать input type='submit)
0 / 2 / 3
Регистрация: 27.03.2012
26.02.2007, 16:02 4
Sergik, ты безусловно прав. Как прав и я

Действительно, можно (и нужно, наверно, см. http://www.relib.com/asp/asp_tip19.asp) сделать проверку 'на клиенте', но и на сервере тоже нужно, потому как если у поддержка скриптов отключена, то с неправильными данными возникнет ошибка.
0
Sultan
26.02.2007, 16:39 5
А что сделать, чтобы некоторые поля можно было бы проигнорировать? То есть, чтобы их можно было бы не заполнять и соответственно на стр. демонстрации сообщений они бы не выводились?
0 / 2 / 3
Регистрация: 27.03.2012
26.02.2007, 16:43 6
Так просто не проверяй их и все. А если получаешь ошибку

Field ''GuestBook.Email'' cannot be a zero-length string

то надо изменить таблицу GuestBook и установить свойство Allow Zero Length поля Email в 'No', т.е. разрешить добавлять пустые значения.
0
Sultan
26.02.2007, 17:16 7
Просто нужно изменить свойство?! Все это до того поразительно просто, что мне даже как то неловко :|

В любом случае огромное вам СПАСИБО за помощь!
0 / 2 / 3
Регистрация: 27.03.2012
26.02.2007, 17:19 8
> В любом случае огромное вам СПАСИБО за помощь!

Так как помощь бесплатная, то при возможности на вашем веб-сайте (для которого guestbook) разместите ссылку 'Зроблено при помощи Relib.com'
0
Sultan
26.02.2007, 17:44 9
При любой возможности буду ссылаться на ваш сайт.
DimOS
27.02.2007, 22:42 10
А как на SQL можно изменить это свойство в существующей таблице?
Sergik
28.02.2007, 10:01 11
Если дело касается MS SQL server, то вот так:
alter table table_name alter column column_name data_type_column [NULL | NOT NULL]
NULL - позволяет пустые значения,
NOT NULL - не позволяет пустые значения
Если требуется изменить тока этот параметр, то вместо data_type_column нужно подставить тип старого столбца (например INT)
Что касается Access, то здесь все не так просто - в одну сторону (из NULL в NOT NULL) этот запрос работает, а в другую нет, я вообще-то мало с Access работал, так что пока не разобрался в этом
0 / 2 / 3
Регистрация: 27.03.2012
28.02.2007, 10:52 12
Если формат поля нельзя изменить, то можно просто пустую строку записать ' '. Тогда ошибки не будет.
0
Sultan
28.02.2007, 11:13 13
В продолжение темы...
В тот же гуэст бук (совершенствую его ) хочу вставить скрытое поле формы 'дата' (т.е. текущее число), выглядит примерно так:
<input type='hidden' name='Date' value=??>
?? - А вот здесь для меня тупик...
Не подскажите каков из себя ВБ-код переменной даты?
0 / 2 / 3
Регистрация: 27.03.2012
28.02.2007, 11:24 14
Не надо тебе его передавать через форму, можно просто брать дату при сохранении в таблицу. Функция Now(), например:

MyRecordset.Fields('MyDate') = Now()

Или опять же в таблице для поля MyDate задать значение по-умолчанию - текущую дату, т.е. при вставке записи, дата сама добавится.
0
Sultan
28.02.2007, 11:36 15
Спасибо, smalig!
Sergik
28.02.2007, 11:38 16
В данном случае лучше использовать значение по умолчанию для поля в таблице, так будет меньше проблем с различными форматами даты-времени
Для SQL Server также можно использовать такую конструкцию:
insert into tbl (event_date) values (GETDATE())
28.02.2007, 11:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2007, 11:38
Помогаю со студенческими работами здесь

Обязательные поля к заполнению Kohana 3
Здравствуйте! Помогите пожалуйста разобраться с задачей, все дело в регистрации на фреймворке...

Сделать ячейки datagridview обязательными для заполнения
Здравствуйте. Как сделать ячейки datagridview обязательными для заполнения? Спасибо

Поля обязательные к заполнению. Не могу найти конфигурацию.
Здравствуйте! Я новичек и самостоятельно изучаю access 2010, смотрел стандартные шаблон Project...

Нужно в форме сделать, так чтобы одинаковое по названию поле (в форме одна) сразу занасила ту же запись в две таблице
Нужно в форме сделать, так чтобы одинаковое по названию поле (в форме одна) сразу занасила ту же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru