Всего 123 798 комментариев

Александр Мельник
11 июня 2023, 10:48
0
Добавлю немного картинок, текст это всегда скучно)
brioni
11 июня 2023, 09:21
0
Андрей, привет. Как получить токен на сайте bugpt.ru/?
Dan
Dan
11 июня 2023, 08:49
0
А json у вас как формируется? Вы сами его составляете? Может в нем есть ошибки? Какая длина json?
Александр Мельник
11 июня 2023, 08:03
0
только сейчас «догнал» что под строкой «536870911» вы имели ввиду длину данных в sql, а не строку, которую вы пытаетесь сохранить в это поле.
Александр Мельник
11 июня 2023, 07:30
0
тоесть поведение изменилось? До этого вы вставляли длинную строку и говорили что она ОБРЕЗАЕТСЯ, а теперь вставляете короткую строку и пишите, что она НЕ СОХРАНЯЕТСЯ совсем?
Выглядит странно, по идее Денис все верно сказал, нужно изменить тип поля value. На самом деле максимальную длину хранимых данных данных можно и не указывать, будет выделено 65 килобайт под каждое значение.
По идее, вам и стандартного mediumtext должно было хватать, под него выделяет 16 миллионов символов, ну неужели ваш json был больше.
Проверяйте ошибки в логах, как в браузере в момент сохранение, так может и логи на сервере.
У меня родилась теория, что ваш json мог обрезаться не по причине длины строки, а по причине того что в его тексте встречался какой то запрещенный в sql символ, хотя это не поясняет ту ситуацию что вы описали в последнем коменте — не сохраняется даже простая строка «536870911»
Александр Мельник
11 июня 2023, 07:03
+1
плюс лично мне очень не нравится сама идея, когда ajaxForm (и fetchIt я думаю делает так же), хранит данные для форм в сессии.
Вся эта идея с генерацией уникального ключа для каждой формы, помещения по этому ключу данных в сессию, при отправке формы считываная этого с сессии… вызывает ощущение дикого костыля. Да, я вынуждем признать, что когда я писал свой аналог ajaxForm я тоже не придумал ничего лучшего и использовал этот же костыль.
Может быть, отчасти, именно поэтому я все реже и реже использую ajaxForm и его аналоги на сайтах и предпочитаю оставить форму в верстке, написаь свой js обработчик и свой php контроллер для отправки.
Александр Мельник
11 июня 2023, 06:52
+1
Вот видите как иногда полезно узнать чужое мнение. А то каждый «в своем мирке» и привыкает использовать инструменты только для каких то строго определенных целей. Я вот например использую ajaxForm (да я понимаю что речь идет о fetchIt, но задачи у них общие) только для примитивных форм в модалках, типа — заказать обратный звонок и так далее. И там необходимо, чтобы данные очищались. Если уже делать что то более серьезное, например личный кабинет о котором говорил Артур, то я предпочту писать все сам, благо сейчас на чистом js очень просто и подписаться на событие submit формы, и собрать данные через formData и отправить их на сервер через fetch и дождаться ответ через promise. Это приносит огромное ощущение удовлетворенности, что каждая строчка кода в личном кабинете написана тобой, что ты именно Разработчик, а не собиратель конструктора из чужих пакетов. Спасибо за ответы, я правда не мог подумать о таких способах применения этого пакета.
Константин Ильин
11 июня 2023, 01:23
+1
Интересный Вы Александр. Отвечу кратко:
Редактирование профиля пользователя, например поле fullname, пишешь «Александр Мельник 666», а после нажатия кнопки сохранить отобразится «Александр Мельник», defaul value.
ну и Артур про это же написал.
Роман
11 июня 2023, 00:04
0
что бы я не указал, не сохраняется значение в этом поле, пишу 536870911 сохраняю, редактирую снова и вижу что поле пустое
Денис Усманов
10 июня 2023, 22:56
0
Нужную длину записываемых данных
Денис Усманов
10 июня 2023, 22:51
0
В Длина/Значения укажите
Роман
10 июня 2023, 22:50
0
Спасибо, но все равно сохраняет обрезанным, а у типа TEXT есть ограничения по количеству?
Денис Усманов
10 июня 2023, 22:18
0
phpMyAdmin -> modx_site_tmplvar_contentvalues -> Структура -> value изменить
меняешь с MEDIUMTEXT на обычный TEXT

Артур Шевченко
10 июня 2023, 20:23
+2
Параметр этот был и в AjaxForm, только там он не работал. А действие вполне логичное в тех случаях, когда форма, которую нужно отправить, это форма с данными пользователя в его ЛК, согласись если ты, как пользователь, зайдёшь в ЛК, изменишь свой email, сохранишь и форма очиститься, ты сильно удивишься)))
Александр Мельник
10 июня 2023, 18:32
+1
Прямо и восхищение и удивление у меня возникло.
Удивление вызвал Константин, вот прям интересно стало, зачем может понадобиться не очищать форму, после того как она отправлена? Это вроде бы такое странное поведение, все равно что пригнать машину на мойку, но попросить оставить грязным две двери) Ну тоесть теоретически там может быть, но зачем.
Расскажите пожалуйста, Константин, побалуйте пожалуйста мое любопытство, для каких целей форма должна оставаться с отправленными данными…
Ну а восхищение вызвал Баха, которые несмотря на нелогичность этого действия, даже добавил в сниппет параметр, за это отвечающий.
Константин Ильин
09 июня 2023, 22:34
+1
Спасибо! Я в событиях js смотрел думал там, как же упрощает жизнь FetchIt, спасибо за шикарный компонент!
Баха Волков
09 июня 2023, 19:12
+1
При вызове сниппета тебе достаточно указать значение 0 параметру clearFieldsOnSuccess.

[[!FetchIt?
  ...
  &clearFieldsOnSuccess=`0`
]]

Подробнее о работе компонента можно узнать на сайте документации. А конкретнее на странице сниппета FetchIt, где и перечислены параметры с их описанием.
Константин Ильин
09 июня 2023, 17:47
0
@Баха Волков Подскажи пожалуйста, как отменить reset формы после отправки? чтоб поля не сбрасывались.
Артур Шевченко
09 июня 2023, 12:31
+1
Давно уже оформил. AjaxFormitLogin называется