Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 16.08.2016, 14:59
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Такие вещи все равно делаются через БД. Почта теряется, залипает в спаме, ходит как попало. А когда есть БД, то основную часть данных о полях можно получить прямо из свойств полей таблицы, здесь таблицы отзывов. Например если поле name not null и нет никакого default, то значит в форме оно будет reuired, а если есть default, то сразу пишем в value этого поля в форме, что в default внесено на этапе создания таблицы. Еще можно вычислять maxlength для текстовых полей. Для полей под числа можно узнать тип числа и допустимое количество знаков за запятой. Дофига чего в общем. Затем в эти же данные просто добавляются паттерны и по обстоятельствам дополнительные свойства и готов объект для рендера формы и для валидации одновременно.
Ответить с цитированием
  #22 (permalink)  
Старый 16.08.2016, 15:01
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
Для сервера эта "правда" всегда должна равняться false.
Поэтому объект должен быть на сервере, см пост выше умнег.
Ответить с цитированием
  #23 (permalink)  
Старый 16.08.2016, 15:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Несешь бред, понос словесный о базе и прочей лабуде.
Ответить с цитированием
  #24 (permalink)  
Старый 16.08.2016, 18:30
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

laimas, ты же вроде специалист по реляционным беде и должен знать, как получить инфу о таблице. Это можно сделать в том числе через information_schema, зацени

$q='select `table_name`,`column_name`,`data_type` as `dtype`,
coalesce(`character_maximum_length`,`numeric_precision`) as `maxlength`,
`numeric_scale` as `decimals`,
`column_key`, 
(`is_nullable`="NO" && `column_default` is NULL) as `required`,
`column_default` as `value`,
`column_type` as `data`
from `information_schema`.`columns` 
where `table_schema`="'.$this->db_name.'" 
and `table_name`="'.$table_name.'"';


Затем еще немного преобразования табличных типов данных в типы полей формы

$sql_types=array(
	'varchar|text|year|char|tinytext|mediumtext|longtext' => 'text',
	'int|decimal|tinyint|smallint|mediumint|bigint|float|double|real' => 'number',
	'enum|set'	=>'select',
	'timestamp'	=>'datetime-local',
	'bit|boolean|serial'=>'range'
);


и конечно потребуется процедура и получаем заготовку с массой готовой инфы, которую уже не надо профтыкать в моделях. Узбагойся уже.
Ответить с цитированием
  #25 (permalink)  
Старый 16.08.2016, 18:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от warren buffet
ты же вроде специалист по реляционным беде и должен знать
Ты может и специалист по "реляционным беде", а не являюсь специалистом по беде, унитазам, да и вообще по сантехнике.

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

Но дело не в этом - нафига весь этот понос нужен в контексте темы, где речь об отправке почты от формы, которая даже раз в 100 лет не потребует изменений, и ее данные не нужно сохранять в базе? Вот ради чего это твое очередное словоблудие? Подсказать способ проверки полей этой формы? Так причем тут база, если в данном случае на все 100 выгоднее просто прописать условия, да и направить эти данные в единый валидатор данных если он есть труда не составит.

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

Прежде чем ляпнуть языком - думай, и если есть действительно нужное и полезное говори, нет, молча проходи мимо. И не дублируй уже все высказанное в темах практически "вылизанных", твоя "точка" в них это уже гольный флуд.
Ответить с цитированием
  #26 (permalink)  
Старый 16.08.2016, 18:59
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
и ее данные не нужно сохранять в базе?
Я понял, ты теоретический дятел, ничего толком не создававший сроду. Иначе бы тебя жизнь заставила сохранять все фидбеки и камбеки и калбеки в беде. Иначе ты просто не узнаешь написали тебе с сайта или письмо утонуло в фильтрах гугля или мыла. Эти письма вообще чисто сигнальная система, все новые сообщения с сайта оператор просматривает на самом сайте, благо что у сайта есть бд и в этой бд все запросто сохраняется.
Ответить с цитированием
  #27 (permalink)  
Старый 16.08.2016, 19:04
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
в единый валидатор данных если он есть труда не составит.
Дуся, нет никакого единого валидатора в мире. Любое поле само себя проверяет, поскольку оно - объект, то есть обладает свойствами и имеет методы. В html5 в точности все реализовано как это делали до html5 грамотные люди.
Ответить с цитированием
  #28 (permalink)  
Старый 16.08.2016, 19:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от warren buffet
Иначе бы тебя жизнь заставила сохранять все фидбеки и камбеки и калбеки в беде.
В беде моют наружные половые органы. Ну а ты можешь в нем и хранить и фид, и бек, и что угодно, я не против.

Ты начитался умных книжек, а пользоваться этим не умеешь, я уже трижды наблюдаю твой "пехепе" - полнейший бред. У тебя есть проблески разумного в JS и даже без лексики гопника, но они так редки, что невольно возникает подозрение, не плагиат ли это.

Пиши в "пехепе", храни в "беде", верстай в "хтмля", я не против.
Ответить с цитированием
  #29 (permalink)  
Старый 16.08.2016, 19:12
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Слушай, но ведь твои "чеса" с лихвой перекрывают все беде и пехепе. Или нет? )))
Ответить с цитированием
  #30 (permalink)  
Старый 16.08.2016, 20:18
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Идея "единого валидатора" живее всех живых. На самом деле делается ровно наоборот, вот как на пехепе.

foreach($this->_d as $field) {
	
	try {
		if($field->name)
			$field->validate($post);
	}
	catch(_CException $e){
		/* уловитель ошибок */
	}

}


и примерно то же самое на js, но без цикла, потому что поле просто вызывает валидацию самого себя через "единую" функцию, где надо провести некоторые мероприятия общего порядка, вроде стереть предыдущую ошибку и проверить как там с остальными полями - можно ли включать кнопку "Отправить".

validate=function(evt) {

	var input=the.inputs[evt.detail.name];
	
	/* тут обнуляется прошлое */
	
	try {
		input.validate();
		isComplete(); /* быстрый осмотр индикаторов ошибок всех полей */
	}
	catch(e) {
	/* уловитель ошибок */
	}
	
}

the.form.addEventListener('validate',validate);


То есть это метод валидации на лету, когда кнопка Отправить становится активной только когда можно отправлять.

Так вот, а теперь моем внешние половые органы в беде. В такой конфигурации я добавляю поле в таблице базы данных и, если меня не колебет перевод на русский язык его названия и не колебет расположение в форме - мне ничего делать больше не надо: поле появится в форме со всей минимально необходимой инфой и для верстки и для проверки. То есть такой мини phpMyAdmin.

Само собой абсолютно любую форму обслуживают одни и те же скрипты. Хоть 100500 форм нарисуй - все что потребуется, это перевести на русский название поля и определить его метоположение в форме если хочется дизайна, а не хочется - оно и так одно за другим выведется с оригинальными именами.

Последний раз редактировалось warren buffet, 16.08.2016 в 20:22.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HEELP please, форма обратной связи mecker_pry Общие вопросы Javascript 0 09.06.2016 01:44
Нужна помощь - форма обратной связи со скачиванием файла Baton1777 Общие вопросы Javascript 3 24.05.2015 02:21
Форма обратной связи Васька jQuery 1 17.12.2014 12:53
ajax форма обратной связи anton-mgn AJAX и COMET 7 15.09.2011 20:42
Форма обратной связи Antifactor Я не знаю javascript 2 09.06.2009 15:21