UMIhelp

Разработка сайта на UMI.CMS => Шаблоны PHP => Тема начата: Aisamiery от 05 Июля 2016, 14:26:48

Название: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 05 Июля 2016, 14:26:48
Скажите, в случае ошибки при отправке формы, откуда вытащить данные о заполненных полях, чтобы их подставить в форму и не заставлять пользователя заполнять по второму кругу?
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 12 Декабря 2016, 21:40:06
Так никто и не научился за пол года? :)
Название: Re: Получить данные полей в случае ошибки
Отправлено: aghigay от 14 Декабря 2016, 12:03:20
Видимо технология мертворожденная :-)
Название: Re: Получить данные полей в случае ошибки
Отправлено: e.ioffe от 14 Декабря 2016, 22:12:48
Цитировать
Скажите, в случае ошибки при отправке формы, откуда вытащить данные о заполненных полях, чтобы их подставить в форму и не заставлять пользователя заполнять по второму кругу?

Посмотрите шаблон demodizzy - реализовано при помощи javascript (такой же javascript и для xslt-шаблона).
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 26 Декабря 2016, 11:19:57
Посмотрите шаблон demodizzy - реализовано при помощи javascript (такой же javascript и для xslt-шаблона).

Валидацию на JS я и так делаю, вопрос в том, что если ввел например не правильно капчу, то JS как бы уже не спасет.
PS. Нет под рукой demodizzy
Название: Re: Получить данные полей в случае ошибки
Отправлено: aghigay от 26 Декабря 2016, 11:42:24
Видимо вопрос об использовании http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_listerrormessages/ в PHP?
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 26 Декабря 2016, 18:22:17
Видимо вопрос об использовании http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_listerrormessages/ в PHP?

Нет, вопрос в том, чтобы в случае ошибки подставить данные в поля, которые пользователь уже заполнял, а не заставлять его заполнять всю форму заного при выводе ошибки "Не верно указан код с картинки".
Название: Re: Получить данные полей в случае ошибки
Отправлено: aghigay от 26 Декабря 2016, 19:01:01
Ну так а при чем тут тогда валидация? Вы сохраняете поля перед submit с помощью функции site.forms.data.save из demodizzy (файл приложен)
А потом делаете restore при повторном открытии страницы
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 28 Декабря 2016, 02:31:50
Вообщем я так понял, сама система такого не умеет. Сохранить в куки это первое что пришло на ум.
Название: Re: Получить данные полей в случае ошибки
Отправлено: aghigay от 28 Декабря 2016, 02:40:38
Система сама не умеет что? Думать какие у вас поля и нужно ли вам сохранять данные каких-то форм в каких-то местах? Конечно, пока ИИ еще не научился читать мысли :-)
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 28 Декабря 2016, 12:20:59
Система сама не умеет что? Думать какие у вас поля и нужно ли вам сохранять данные каких-то форм в каких-то местах? Конечно, пока ИИ еще не научился читать мысли :-)

Нет, достаточно просто вернуть POST запрос обратно и при чем тут ИИ вообще непонятно, или для А25 такая задача на грани ИИ и машинного обучения что ли?

А потом, судя по вашему файлику JS, после регистрации, вопросу менеджеру и оформлению покупки, пользователь все эти формы будет гонять при каждом (!!!) запросе туда/сюда в заголовках, включая все AJAX и прочие запросы. Это не считая ограничения на куку с которой тоже можно поймать артефакты. Гениально, а потом придет Женя и будет все оптимизировать. Сообщество юми меня всегда умиляло своей компетентностью.
Название: Re: Получить данные полей в случае ошибки
Отправлено: e.ioffe от 28 Декабря 2016, 13:17:18
оффтоп

Цитировать
Сообщество юми меня всегда умиляло своей компетентностью.

Партнеры umi иногда поражают своим отношением к системе, на которой работают. Не нравится типовой функционал - напишите свой. Еще лучше - отправьте его разработчикам, чтобы они рассмотрели возможность внедрения в коробку.
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 28 Декабря 2016, 13:46:24
Партнеры umi иногда поражают своим отношением к системе, на которой работают. Не нравится типовой функционал - напишите свой. Еще лучше - отправьте его разработчикам, чтобы они рассмотрели возможность внедрения в коробку.

1. Кто сказал что мне не нравится типовой функционал? Как раз для этого и использую юми. Вопрос как раз про типовой, есть форма, типовая, есть валидация типовая, не прошли валидацию типовую и ... дальше типовой функционал закончился пишите свой???
2. Зачем мне коробка, если мне надо писать свой функционал? Я тогда беру более подходящие для этого инструменты.
3. У меня вполне нормальное отношение к системе, непонимаю Жень, что тебя поражает в моем вопросе. В том что я ожидаю вполне логичного поведения от системы?
4. По возможности шлю косяки ядра системы разработчикам. (просто отошел уже от юми и не так плотно с ней работаю)

Только все это никак не относится к моему вопросу. И тем более к ответам на мой простой, обычный вопрос. На который можно было просто сказать: "Нигде! Система не сохраняет данные после валидации". Нет пришли советчики, мегаюмигуру, которые при запросе любой картинки предлагают все данные всех заполненных форм пересылать. Еще при этом беспантово шутить пытаются, наивно полагая что у них есть чувство юмора.
Название: Re: Получить данные полей в случае ошибки
Отправлено: aghigay от 28 Декабря 2016, 14:47:07
или для А25 такая задача на грани ИИ и машинного обучения что ли?

Ого! Ну ничего себе у вас проблема с самооценкой :-) А чего вы на людей бросаетесь?
Боюсь, что с таким отношением вы очень скоро перестанете получать ответы на свои вопросы.

И как бы намекаю, что как раз у меня лично и у А25 нет таких проблем, так как подобные вопросы мы не задаем. Мы четко знаем как решается эта ситуация :-) А вот вы задаете :-) Как мне кажется, это явный знак о том, какие именно пробелы есть в ваших знаниях :-)
Название: Re: Получить данные полей в случае ошибки
Отправлено: admin от 28 Декабря 2016, 14:56:05
Так, господа, прошу беседовать конструктивно, а не обмениваться своим "профессиональным" уровнем тонкого сарказма.

Aisamiery, отвечая на ваш вопрос:

- Макрос отправки формы обратной связи (и прочие подобные) не возвращают отправленные в форме поля. Так как в функционале из коробки лишь выводит сообщение об ошибки.
- Один из стандартных способов решения данного вопроса позаимствованный из js файла в дефолтном шаблоне demodizzy. Он представляет из себя js код, для записи данных формы в куку, перед отправкой данных на сервер и восстановления из этой куки данных в случае ошибки (если вам необходим данных код или есть по нему вопросы, сформулируйте их)
- Альтернативный вариант, это использование своего (у многих он есть в личных заготовках) кастомного макроса, который перед отправкой данных на сервер делает проверку валидности данных формы (в том числе и капчи) через ajax запрос. По сути, он проверяет все тоже самое что и стандартные макросы обработки форм, только без редиректа на ошибки, а возвращая json список ошибок.

Этого ответа вам достаточно?


Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 28 Декабря 2016, 15:50:37
- Один из стандартных способов решения данного вопроса позаимствованный из js файла в дефолтном шаблоне demodizzy. Он представляет из себя js код, для записи данных формы в куку, перед отправкой данных на сервер и восстановления из этой куки данных в случае ошибки (если вам необходим данных код или есть по нему вопросы, сформулируйте их)

Немного теории, почему меня такой вариант не устраивает. В большинстве случаев на открытие страницы пользователем приходится от 70 до 200 запросов, если ваша кука весит например 1.5к то в одну сторону вы отправляете до 300Кб и столько же получаете, то есть 600Кб доп трафика (не включая вес страницы) у вас придется только на куку при каждом открытии страницы. Круто, не правда ли?

- Макрос отправки формы обратной связи (и прочие подобные) не возвращают отправленные в форме поля. Так как в функционале из коробки лишь выводит сообщение об ошибки.
- Альтернативный вариант, это использование своего (у многих он есть в личных заготовках) кастомного макроса, который перед отправкой данных на сервер делает проверку валидности данных формы (в том числе и капчи) через ajax запрос. По сути, он проверяет все тоже самое что и стандартные макросы обработки форм, только без редиректа на ошибки, а возвращая json список ошибок.

Спасибо, вот это я и хотел услышать когда задавал этот вопрос.

Этого ответа вам достаточно?

Да вполне
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 28 Декабря 2016, 15:58:58
Ого! Ну ничего себе у вас проблема с самооценкой :-) А чего вы на людей бросаетесь?
Вы там что то покуриваете? Сначало вы про какой то ИИ заговорили и угадывание машиной моих желаний, теперь про самооценку? Ппц какой-то, вроде не баба, а сама придумала, сама обиделась.

Боюсь, что с таким отношением вы очень скоро перестанете получать ответы на свои вопросы.

Пойду повешусь наверное.

И как бы намекаю, что как раз у меня лично и у А25 нет таких проблем, так как подобные вопросы мы не задаем. Мы четко знаем как решается эта ситуация :-) А вот вы задаете :-) Как мне кажется, это явный знак о том, какие именно пробелы есть в ваших знаниях :-)

Когда кажется, креститься надо. То что вы четко знаете как делать - это еще не значит, что так стоит делать. А то что у вас пробелы в знании базовых протоколов это факт на лицо.

PS. Есть к вам пара вопросов, вы четко знаете что нужно подключить по 2 раза jQuery, jQueryUI и fancybox чтобы они точно заработали? http://joxi.ru/Y2LX1Yasn3Ldd2 Почему не 5 раз, не 10 раз?
Вы четко знаете, что примерно столько должен открываться сайт? http://joxi.ru/v29WbPYSGEYQbr и это попав в кэш самой системы http://joxi.ru/8An61olIqBRRNA и даже попав в кэш браузера http://joxi.ru/MAj1no5ivVLLB2
Название: Re: Получить данные полей в случае ошибки
Отправлено: Aisamiery от 28 Декабря 2016, 16:05:39
За сим откланиюсь господа. Здесь ответов мне все равно не получить :)