
Артем
С нами с 15 октября 2017; Место в рейтинге пользователей: #151Вчера в 13:50
Постоянно ошибки:
16.03.2025 04:32:29 ERROR /home/f/fb7927nm/site.ru/public_html/core/model/modx/modx.class.php 1042
#0 /home/f/fb7927nm/site.ru/pub...
Борьба с парсерами и ботами - antiBot 78
Вчера в 09:25
Карма @Денис Усманов увеличена до бесконечности, за такое полезное дело!
MODX RSC | Telegram Karma Bot 1
15 марта 2025, 17:05
Выполни в консоли modx
$manager = $modx->getManager();
$manager->createObjectContainer('MsieCron');
$manager->createObjectContainer('MsieP...
msImportExport 2.0 115
15 марта 2025, 09:04
Сработало, просто нужно было загрузить определенный словарь на страницу принудительно.
Спасибо!
MIGx. Listbox. Fenom. Вставка label вместо value. 3
14 марта 2025, 22:36
Что это за конструкция
[[!getId?id]]Можно же получить доступ к гет-параметрам так [[#GET.id]]
Не выводятся данные пользователя в профиле 1
14 марта 2025, 17:18
Павел, есть возможность подправить плагин videoGalleryTv для PHP 8+, а то в логах генерятся варнинги:
14.03.2025 17:01:18 ERROR /home/a1102397/dom...
[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек 8
14 марта 2025, 16:06
Добрый день, Оператор LIKE В строке не работает.
Задаём условие в Настройках предложений по полю pagetitle определяем оператор LIKE %то, что содерж...
Как я написал YandexMarket2 на Vue.js 50
14 марта 2025, 10:32
Здравствуйте
префиксы таблиц, точно они ms2_Поправил, спасибо за уточнение ).
А почему выбрал CronManagerПросто обычно работаю с CronManager, но...
Обновление Impex и Impex3 2
14 марта 2025, 06:29
Добрый день. Пакет актуален. Настройки не изменились.
[mspTinkoff] 1.0.2 — Новое API + ККТ 56
13 марта 2025, 23:49
Это для меня совсем непонятно. pdoResources? Его я запускал с &element=`ms2galleryResources` и с пустым шаблоном, чтобы посмотреть массив данн...
Получить ALT изображения в сниппете ms2GalleryResources на fenom 5
Btw, Quiz is a paid component. That means you have a one year tech support provided by author of this component. Please, sign in to your Modstore account and use Support tab to directly contact the author.
— ловишь нажатие кнопки, отправляешь ajax запрос на сервер с каким-нибудь экшном типа modal/show
— на сервере проверяешь, что это ajax запрос и сравниваешь экшн, если это modal/show, то рендеришь свой чанк с модалкой через pdoTools::getChunk() или modX::getChunk(), а затем возвращаешь ответ на фронт
— на фронте достаешь из ответа html и вставляешь на страницу через append/innerHTML.
Подробнее можно почитать тут и тут.
вместо
пишешь
На выходе получаешь точное количество лет опыта.
Т.е. у каждого преподавателя должна быть дата, от которой нужно отсчитывать стаж, а затем нужно банально вычесть эту дату из текущей, округлив до лет.
Подсчитывать такие вещи через крон на сервере — лишняя головная боль.
P.S. Закинул небольшую спасибку
Спасибо за еще одну отличную заметку!
Конечно, было бы интересно почитать про JWT авторизацию, поскольку она кажется в разы более гибкой и интересной, нежели сессии и вот это все, особенно в контексте полного разделения фронтенда от бэкенда.
ну и потом на крон его повесить, разумеется
Практически всю нужную тебе инфу можно смотреть в рамках этого сайта. Просто пишешь прямо там в поиске нужный метод или фразу, а потом смотришь результаты.
Он поднимается вверх по DOM и ищет указанного родителя.
У тебя может быть хоть 150 одинаковых форм, но измененный инпут принадлежит только одной из них.
Поэтому ты делаешь, например, вот так
и узнаешь, что измененный инпут принадлежит форме с классом formClass.
Более того, ты можешь сразу сохранить эту форму в переменную и в дальнейшем работать с ней, если есть такая необходимость.
Верно, он будет следить за всеми элементами всех форм, в этом и есть его плюс, который называется делегирование.
Например, если у тебя на странице появятся еще 2 формы с таким же классом, то они автоматически подхватятся и в них тоже будут отслеживаться изменения.
И нет, не нужно задавать всем инпутам определенный класс.
Твоя задача
решается вот так
Это будет точно так же срабатывать, если изменения происходят только в рамках конкретной формы.
Твоя форма может быть присвоена переменной, как я уже показал выше, чтобы ты мог с ней работать и собирать из нее данные через FormData, например.
К слову, getElementById('formtest') уже практически не используется в новом коде, поэтому рекомендую заменять его на querySelector('#formtest').
Если тебе нужно отслеживать изменения внутри какой-то конкретной формы, то просто проверяешь ее наличие среди родителей через closest.
Данные из формы удобнее всего собирать через FormData, как уже выше сказали. Иногда может потребоваться дополнительная обработка всяких чекбоксов, потому что по умолчанию неотмеченные чекбоксы вообще не собираются, например.
К слову, FormData — итерируемый объект, поэтому ты можешь легко по нему пройтись через цикл и поменять то, что тебе нужно:
fetch лично мне не зашел, слишком много телодвижений требуется для обычных ajax-запросов. Чтобы принять json на сервере, нужно лезть в php://input и оттуда его доставать, что может быть не всегда удобно по разным причинам. Тут либо написать свой простенький асинхронный метод-обертку для запросов, который будет построен на старом XMLHttpRequest, либо посылать данные в multipart/form-data, тогда проблем не будет.
Помимо этого, fetch до сих пор не умеет отслеживать прогресс загрузки, поэтому если нужна такая фича, можно смело от него отказываться.
1. Убрать оплату из заказа и вернуть json_response в конфиг, тогда exit не будет вызываться, а в ответе будет номер заказа.
2. Брать номер заказа из сессии — он добавляется туда сразу после создания заказа.