Sultan
|
|
1 | |
Нужно сделать все поля на форме обязательными к заполнению26.02.2007, 14:31. Показов 6059. Ответов 15
Метки нет (Все метки)
Делаю Гуэст бук, создал две страницы: с демонстрацией всех сообщений и с вводом сообщения. На странице ввода сообщения форма которая отправляет инфу в БД, а страница демонстрации сообщений вытаскивает всю инфу из БД. Когда заполняешь форму проигнорировав (не заполнив) какое-либо поле и жмешь сабмит выскакивает следующее:
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) ? |
26.02.2007, 14:31 | |
Ответы с готовыми решениями:
15
Нужно, чтобы некоторые поля в форме были обязательными к заполнению. Как сделать все поля обязательными к заполнению Сделать так, чтобы при нажатии кнопки все поля в форме DBGrid заполнились Условие, чтобы , к примеру ПОЛЯ --лицевой счет-- и --фио клиента-- были обязательными |
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 | |||||
Можно сделать на стороне сервера, а можно и на стороне клиента, пример:
(можно и при отключенном 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 | |
28.02.2007, 11:38 | |
Помогаю со студенческими работами здесь
16
Обязательные поля к заполнению Kohana 3 Сделать ячейки datagridview обязательными для заполнения Поля обязательные к заполнению. Не могу найти конфигурацию. Нужно в форме сделать, так чтобы одинаковое по названию поле (в форме одна) сразу занасила ту же запись в две таблице Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |