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

Роман
17 марта 2024, 16:10
0
ID у форм разные, а вот у блоков да. Разрулил их разными классами, тоже вариант. Просто я на другое смотрел. Спасибо
Константин Ильин
17 марта 2024, 14:45
+1
База верстки. На одно странице не должно быть 2 или более элемента с одинаковым id.
У вас получается #form-fields и #form-thanks 2е штуки т.к. две формы. Надо перейти на классы и работать с конкретной формой, а не глобально.

<form action="[[~[[*id]]]]" method="post" id="callbackform" class="ajax_form">
			<div class="form-fields">
				<input type="text" id="fr_name" name="name" value="[[+fi.name]]">
				<input type="text" id="fr_phone" name="phone" class="m-phones" value="[[+fi.phone]]" required="">
				<input type="submit" class="btn" data-default="Заказать звонок" value="Заказать звонок">
			</div>
			<div class="form-thanks" style="display: none;">
				<span class="title">Спасибо за ваше обращение!</span>
				<p>Мы свяжемся с Вами в ближайшее время.</p>
			</div>
		</form>

js вроде так, с jquery давно не работал
if (form.attr('id') == 'callbackform') {
    $(form).find(".form-fields").fadeOut();
    $(form).find(".form-thanks").fadeIn();
}
Дмитрий
17 марта 2024, 14:39
0
У меня такого параметра в /assets/components/msearch2/js/web/default.js нет, где вы его нашли?
Роман
17 марта 2024, 11:07
0
Всем привет. Подскажите, как обойти?

На странице есть две формы, в каждой форме есть два блока, по логике, после отправки формы один блок срывается, а другой блок открывается.

Но т.к. на странице две формы срабатывает код у первой по коду на самой странице

[[!AjaxForm? 
	&snippet=`FormIt` 
	&emailTpl=`tplMail`
	&hooks=`email`
	&validate=`phone:required, fastname:blank`
	&frontend_css=``
	&emailSubject=`Обратная связь с сайта [[++site_name]]`
	&emailFromName=`[[++site_name]]`
	&emailTo=`{1 | resource: 'tplMail'}`
	&emailFrom=`[[++emailsender]]`
	&validationErrorMessage=`Пожалуйста, исправьте ошибки!`
	&successMessage=`Ваше сообщение успешно отправлено`
	&form=`@CODE:
		<form action="[[~[[*id]]]]" method="post" id="callbackform" class="ajax_form">
			<div id="form-fields">
				<input type="text" id="fr_name" name="name" value="[[+fi.name]]">
				<input type="text" id="fr_phone" name="phone" class="m-phones" value="[[+fi.phone]]" required="">
				<input type="submit" class="btn" data-default="Заказать звонок" value="Заказать звонок">
			</div>
			<div id="form-thanks" style="display: none;">
				<span class="title">Спасибо за ваше обращение!</span>
				<p>Мы свяжемся с Вами в ближайшее время.</p>
			</div>
		</form>
	` 
]]

// в второй формы 
<form action="[[~[[*id]]]]" method="post" id="consultationform" class="ajax_form">

// сам JS, пытался разбить на ID формы, но не срабатывает
<script>
$(document).ready(function() {
    AjaxForm.Message.success = function() {};
});
$(document).on('af_complete', function(event, response) {
  var form = response.form;
  if (form.attr('id') == 'callbackform') {
		$("#form-fields").fadeOut();
		$("#form-thanks").fadeIn();
		e.preventDefault();
  }
  if (form.attr('id') == 'consultationform') {
		$("#form-fields").fadeOut();
		$("#form-thanks").fadeIn();
		e.preventDefault();
  }
});
</script>
Prihod
17 марта 2024, 02:29
0
все должно обновиться, может поле не так называется выведи все поля
print_r($productData->toArray());
Станислав
16 марта 2024, 22:29
0
$productData = $modx->getObject('msProductData',$product_id);
$productData->set('my_var','my_val');
$productData->save();

Пробую таким образом обновить данные, в своем скрипте, но ничего не обновляется
Алексей Смирнов
16 марта 2024, 22:16
0
нужно верно передавать параметры и возможно заработает корректно.
НО. что мешает вам в одном плагине через необходимые условия разрулить применение кода в событиях?
Тем более раз вы выбрали это событие, то вы хотите просто цену отображения же менять? так? или цену добавления в корзину? потому что если последнее, то нужно другое событие.
epic
16 марта 2024, 11:02
0
твой вариант пробовал и так и так не помогло.
вдруг кому поможет сработал такой:
{foreach $options as $option}
    {if '' in $option.value}
    
    {else}
        <li>
            <label ><span>{$option.caption}:</span></label>
            <p>
                {if $option.value is array}
                    {$option.value | join : ', '}
                {else}
                    {$option.value}
                {/if}
                {$option.measure_unit}
            </p>
        </li>
    {/if}
{/foreach}
Vit
Vit
15 марта 2024, 16:31
0
Здравствуйте.
Как адаптировать плагин под MODx 3?
Под MODx 3 не читает значения из полей пользователя, ни из modUser, ни из modUserProfile.

Получаются пустые значения, а при сохранении, в БД ничего не сохраняется :(
Ольга
15 марта 2024, 11:04
0
здравствуйте! а есть еще варианты, в чем косяк, если с AjaxForm в «Системных настройках», раздел «Сессии и куки», параметр «session_cookie_path» поменяли на «/», а сайт все равно пишет 2 сессии. с одной страницы письмо улетает, при переводе уже не работает
Олег Захаров
15 марта 2024, 02:33
0
Спасибо! Как раз что-то подобное нужно было сделать и Вы прям вовремя.
Олег Захаров
15 марта 2024, 02:14
1
0
Не совсем понял в чем проблема, покажу как я делал — и у меня все работает без проблем:
Настройки контекста (затер данные немного, без разрешения собственника не могу светить):
или ссылка на фото на Яндекс.Диск https://disk.yandex.ru/i/K_HAhwSm7znIbg
Название в Общей информации:
или или ссылка на фото на Яндекс.Диск
https://disk.yandex.ru/i/kbMoT84UJfDNWA
Как видно на картинке название контекста указываю домен кириллицей и абракадаброй преобразованных на латиницу непонятно нечелевочески названий, чтобы было легче ориентироваться в админке и при переключении контектстов.
Дмитрий
15 марта 2024, 01:32
+1
Это, конечно, очевидно. Статья рассчитана на тех, кто не пользуется указанными фреймворками.
steve.kon
14 марта 2024, 18:23
0
Убрав у 1000-ых значений мм, всё заработало.
До 1000 продолжают работать и с мм…
steve.kon
14 марта 2024, 16:41
0
Пробую без мм
Понимаю, что мм лишние и работать не должно, но работало. А перестало только когда 1000мм + появилось.
Похоже на какое-то ограничение длины поля…
Артур Шевченко
14 марта 2024, 15:55
0
Ты в слайдер пихаешь строки и хочешь чтобы он работал? Слайдер работает только с числами.
Сергей Карпович
14 марта 2024, 15:19
0
завелось с использованием полного ui, не кастом
Сергей Карпович
14 марта 2024, 14:59
0
Почему то такой вариант не работает у меня…
Сергей
14 марта 2024, 14:55
0
Всем примет, может кто-то решал уже подобное…
Конфликт кастомного модуля pricecar (применяет цену к товарам, относительно того в какой группе находится пользователь) на событие msOnGetProductPrice с msPromoCode2. Если приоритет msPromoCode2 выше, то промокод применяется, если ниже, то пишет что нет товара к которым можно применить, а модуль pricecar отображает цену в корзине не корректно, если приоритет выше у msPromoCode2.