rm root, как вариант, разместить цикл в отдельном шаблоне-файле, скриптом запросить его html и вставить в нужный блок старой страницы.
Ещё вариант: то что сохраняем в бд скриптово отрисовать в нужный html вид в случае успешного сохранения.
Из текущего описания вариантов может быть много. В консоли браузера у неавторизованных ошибок скриптов нет?
Бывает, библиотека ajax не подключена или подключена неправильно. Попробуйте у компонента формы отключить аякс режим.
Часто ещё кеш необходимо сбросить, чтобы шаблоны компонентов обновились, для сессии неавторизованного один из вариантов - get параметр clear_cache_session=Y
При перестраивании с 960 на 961 происходит перемещение кнопки Купить и ровно на эту старую величину блока под кнопку остаётся отступ. Следовательно, высота берётся до того как html структура перестраивается, отсюда привязка ко времени таймаута. Это время зависит от скорости чтения и обработки кода окружением, в котором работает скрипт.
Удачи в поиске решений!
eugene159, вопрос заключается в том, нужны ли расчёты высоты, если при изменении ширины экрана, скрипт проходит по циклу и в итоге, если добавить else в проверку if переменной максимальной высоты > текущей, то всегда устанавливается высота else.
if (currHeight > maxHeight) {
maxHeight = currHeight;
}
else {
maxHeight="auto"; // срабатывает в рассматриваемых размерах экрана
}
AUser0, если скрипт находится в области прорисовки страницы, его события работают при нажатии кнопки браузера Назад. Главное, подобрать правильный триггер и чётко обозначить область прорисовки и обработки элементов структуры.
на бекенде должно уходить письмо с полученными данными.
при этом возвращается статус успеха
Promise {}
__proto__: Promise
[[PromiseStatus]]: "resolved"
Не понятно какие ещё данные Вы ожидаете получить. Согласно информации логика выглядит вполне рабочей.
С заголовками всё нормально, раз с бэкенда приходит статус успеха.
Разве-что входящие данные пустые или не по формату: this.state
Если this.state не пустой - как вариант, ставим валидацию всех полей на бэкенде и отлаживаем поочередно их возвращая результат валидации на фронтенд. При этом точно нужно знать, что отправка почты включена и работает в целом.
Остап, какого формата ответ должен быть с бекенда? текст или всё же response.json()?
обычно, на бекенде можно ставить различные проверки и возвраты ответа, а также статусов ответа, чтобы понять что тянуть на фронтенде.
SteepNET, сейчас в массиве $ar['DATE_NEW_PRICE'] находится обьект даты, а в $arResult['DATE_NEW_PRICE'], как я понимаю, достаточно передать только value строку.
Дальше прямая вставка фрагмента php в js:
var arrayDate = '<?=CUtil::PhpToJSObject($arResult['DATE_NEW_PRICE'], false, true);?>';
....
вместо
data: {
labels: [ 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
вставляем объявленную переменную arrayDate:
data: {
labels: arrayDate,
anriko, отлично. Если необходимо, в системе есть свой функционал сжатия скриптов, в настройках Главного модуля. Главное, чтобы внедрённый функционал это учитывал.
anriko, Система из коробки? Ошибок в консоли страницы нет?
Возможно, скрипт не догружается, а возможно, предусмотрительные разработчики скрыли кнопки специально) По коду страницы можно понять.
Diversia, при оценке конфигурации хостинга часто не уделяется должное внимание ресурсам базы данных. Скорость и количество запросов имеют решающий фактор в стабильсти работы сайтов на базе Битрикс. Также часто узким местом оказывается эффективность кеширования.
Обычно нагрузочное тестирование за неделю тестового периода позволяет сравнить показатели и решить стоит ли переезжать. Конечно, если вопрос только в стабильности сервера, не в работе сайта - однозначно выделенный сервер лучше.
Относительно недорогие и стабильные сервера в Германии, но к сожалению, по законодательству РФ, есть ограничения.
Пинг может незначительно улучшить включение CDN.
Андрей Белый, чтобы массив заполнился полностью, $res->GetNextElement() необходимо вынести отдельно, перед уже перебором foreach. Сейчас foreach внутри GetNextElement, поэтому в нём один элемент, затем два и т.п.
Необходимо за один цикл сначала заполнить многомерный массив данными, где ключами массива будут строки по названию свойства, например:
$arItemsTable['DETAIL_PICTURE']['TITLE'] = 'Картинка';
$arItemsTable['DETAIL_PICTURE']['ITEMS'] = [];
И так по каждому полю и перечисленных, что нужно вывести по вертикали:
Название
Краткое описание
Цена (₽)
Подогрев воды
Клапан на лейке
Напряжение питания (АС/DC)
Ток потребления (А)
Мощность (Вт)
Защита от включения в сухую
Производительность при подъеме воды на высоту 2 метра (л/час)
Максимальная высота подъема воды (м)
Размеры прибора (см)
Длина душевого шланга (м)
Длинна кабеля (м)
Масса (кг)