Илья
у меня не пашет)) сука днс хост забыл проплатить домен))
DG
Всем привет! Помогите плиз кто разбирается в jquery дали сайт на доработку на нем есть форма на странице /ur/block1.php которая после проверки отправляет форму jquery form.submit(); в консоле смотрю form - все норм а форма отправляет на /ur/index.php а здесь принтую POST и он пустой и должно быть на этом этапе записать в сессию данные для заполнения второго шага
DG
почему может быть POST пустой
Илья
покажи скрин кода js
Anonymous
А дитто так же работает?
Dmytro
А дитто так же работает?
Чуть чуть его переписать ;) строк 20 и будет и дитто ;))
Dmytro
Никто ж не мешает переменную назвать $ditto :)
Камиль
Эт дебаг или что? Я отстал от жизни
Dmytro
Эт дебаг или что? Я отстал от жизни
Дебаг бар трейси, но тут речь о переменных в шаблоне и причтную работу с блейдом
Dmytro
bLang
Камиль
Давно не делал мультиязычные сайты, уже и не знаю что есть :)
Илья
так, ну форма отправляецца дефолтно, а не js, ловишь ее каким образом? method у формы указан?
DG
<form action="index.php" method="post"> а на index if(isset($_POST)){ ...
DG
говорят что раньше ве работало
DG
и типа примерно месяца 4-5 назад перестали заявки приходить
DG
$(function(){ var settings = { 'match' : 'match', 'addNewAddressBtn' : '+ ДОБАВИТЬ НОВЫЙ', 'removeAddressBtn' : '- УДАЛИТЬ АДРЕС', 'btnRemoveInfo' : ' - УДАЛИТЬ ИНФОРМАЦИЮ', 'btnAddInfo' : ' + ЗАПОЛНИТЬ ИНФОРМАЦИЮ', 'actionRemoveAddress' : 'remove-address', 'actionAddAddress' : 'add-address', 'actionAddressMatch' : 'address-match', 'actionAddressNotMatch' : 'address-not-match', 'buhVShtate' : 'buh-v-shtate', 'addPerson' : 'add-person', 'faxLikeAPhone' : 'fax-like-a-phone', }; $('.online-order.block-detail ').on('click', function(ev){ var $target = $(ev.target); ev.preventDefault(); if($target.is('.back_btn[data-action]')) { switch ($target.attr('data-action')) { case 'back': history.back(); break; case 'add-address': var contentClass = $target.attr('data-append'); var classPrefix = $target.attr('data-prefix'); $.post( '/order/_partial/address_form.php', { 'prefix': classPrefix } ).done(function(data){ var cont = getParentBlock($target).find(contentClass); cont.html(data); // button '+ ДОБАВИТЬ НОВЫЙ' to '- УДАЛИТЬ АДРЕС' $target.attr('data-action', settings.actionRemoveAddress); $target.html(settings.removeAddressBtn); $target.prev('.link-btn, .link_btn').addClass('hide'); showStars(); var flagName = $target.attr('data-tag'); var flagTag = getParentBlock($target).find('[name="' + flagName + '"]'); flagTag.val('address').value = 'address'; }); break; case 'remove-address': var contentClass = $target.attr('data-append'); $(contentClass).html(''); // button '- УДАЛИТЬ АДРЕС' to '+ ДОБАВИТЬ НОВЫЙ' $target.attr('data-action', settings.actionAddAddress); $target.html(settings.addNewAddressBtn); $target.prev('.link-btn, .link_btn').removeClass('hide'); $target.next('.back_btn[data-action="' + settings.actionRemoveAddress + '"]') .html(settings.addNewAddressBtn) .attr('data-action', settings.actionAddAddress); var flagName = $target.attr('data-tag'); var flagTag = getParentBlock($target).find('[name="' + flagName + '"]'); flagTag.val('').value = ''; break; case 'submit': var submitFlag = true; if($('.online-order form').valid() === false) { submitFlag = false; } if($('input[name="buh_v_shtate"]') !== null && $('input[name="buh_v_shtate"]').val() == '') { $('input[name="buh_v_shtate"]').next('.person-info').html($('<span>', {style : 'color: red;', text : 'Не заполнена информация о бухгалтере!'})); submitFlag = false; } if($('input[name="no-persons"]') !== null && $('input[name="no-persons"]').val() == 'nope') { $('#message-no-person').find('.message-text').html($('<span>', {style : 'color: red;', text : 'Не заполнена информация об уполномоченных лицах!'})); submitFlag = false; }
DG
if($('input[name="faktaddr_data"]').val() !== undefined && $('input[name="faktaddr_data"]').val() == '') { $('input[name="faktaddr_data"]').next('.fakt-address').html($('<span>', {style : 'color: red;', text : 'Адрес не указан'})); submitFlag = false; } if($('input[name="mailaddr_data"]').val() !== undefined && $('input[name="mailaddr_data"]').val() == '') { $('input[name="mailaddr_data"]').next('.post-fakt-address').html($('<span>', {style : 'color: red;', text : 'Адрес не указан'})); submitFlag = false; } if(submitFlag) { var $form = $target.parents('form'); var goalId = $form.find('input[name="GOAL_ID"]').val(); if ( goalId ) Metrics.reachGoal(goalId); var s = $form.serializeArray(); console.log($form.get); //$form.get(0).submit(); //s.submit(); return true; } break; case settings.addPerson: $.post( '/order/_partial/person.php', { 'prefix': classPrefix } ).done(function(data){ var cont = getParentBlock($target).find(contentClass); cont.html(data); // button '+ ДОБАВИТЬ НОВЫЙ' to '- УДАЛИТЬ АДРЕС' $target.attr('data-action', settings.actionRemoveAddress); $target.html(settings.removeAddressBtn); $target.prev('.link-btn, .link_btn').addClass('hide'); showStars(); $('input[type="tel"], input.tel').mask("+7 (999) 999-99-99"); }); break; case 'person-add': var contentClass = $target.attr('data-append'); var classPrefix = $target.attr('data-prefix'); $.post( '/order/_partial/buh.php', { 'prefix': classPrefix } ).done(function(data){ var cont = getParentBlock($target).find(contentClass); cont.html(data); // button ' + ЗАПОЛНИТЬ ИНФОРМАЦИЮ' to ' - УДАЛИТЬ ИНФОРМАЦИЮ' $target.attr('data-action', 'person-remove'); $target.html(settings.btnRemoveInfo); $target.prev('.link-btn, .link_btn').addClass('hide'); showStars(); var flagName = $target.attr('data-tag'); var flagTag = getParentBlock($target).find('[name="' + flagName + '"]'); flagTag.val('new').value = 'new'; $('input[type="tel"], input.tel').mask("+7 (999) 999-99-99"); }); break; case 'person-remove': var contentClass = $target.attr('data-append'); $(contentClass).html('');
DG
// button ' + ЗАПОЛНИТЬ ИНФОРМАЦИЮ' to ' - УДАЛИТЬ ИНФОРМАЦИЮ' $target.attr('data-action', 'person-add'); $target.html(settings.btnAddInfo); $target.prev('.link-btn, .link_btn').removeClass('hide'); $target.next('.back_btn[data-action="' + settings.actionRemoveAddress + '"]') .html(settings.btnAddInfo) .attr('data-action', 'person-add'); var flagName = $target.attr('data-tag'); var flagTag = getParentBlock($target).find('[name="' + flagName + '"]'); flagTag.val('').value = ''; break; // добавляем уполномоценные лица case 'append-person': var index = parseInt($target.attr('data-index')); index++; $target.attr('data-index', index); // удаляем сообщение если оно есть $('#message-no-person').find('.message-text').html(''); $.post( '/order/_partial/person.php', { 'index': index } ).done(function(data){ var dataPlaceClassName = '.' + $target.attr('data-target'); var dataplace = getParentBlock($target).find(dataPlaceClassName); dataplace.append(data); showStars(); $('input[type="tel"], input.tel').mask("+7 (999) 999-99-99"); }); break; // удаляем уполномоченное лицо case 'delete-person': // data-action="delete-person" data-target="item-002" data-index="2" var tagClass = '.' + $target.attr('data-target'); var index = $target.attr('data-index'); var $hiddenInput = $('<input/>', { name : 'person[' + index + ']', type : 'hidden', value : ''}); $(tagClass).before($hiddenInput); $(tagClass).remove(); break; } } if($target.is('.link_btn, .link-btn')){ if($target.is('[data-action]')) { switch ($target.attr('data-action')) { case 'back': history.back(); break; case 'to-index': var pathArray = location.pathname.split('/'); pathArray[pathArray.length - 1] = 'index.php'; location.href = pathArray.join('/'); break; case settings.actionAddressMatch: var hiddenInput = 'input[name=' + $target.attr('data-tag') + ']'; $target.attr('data-action', settings.actionAddressNotMatch); $($target.attr('data-append')).html(''); getParentBlock($target).find(hiddenInput).val('match').attr('value', 'match').value = 'match'; break; case settings.actionAddressNotMatch: var hiddenInput = 'input[name=' + $target.attr('data-tag') + ']'; getParentBlock($target).find(hiddenInput).val('').attr('value', '').value = ''; $target.attr('data-action', settings.actionAddressMatch); break; case settings.buhVShtate: // TODO: блок02 бухгалтер в штате break; case settings.faxLikeAPhone: // person факс совпадает телефоном
DG
// data-source = [name="<dir>phone"] // data-append = [name="<dir>fax"] var $form = $target.parent().parent(); var phoneField = $target.attr('data-source'); var faxField = $target.attr('data-append'); var phone = $form.find(phoneField).val() || $form.find(phoneField).value; $form.find(faxField).val(phone).value = phone; break; case 'buh-not': var hiddenInput = 'input[name=' + $target.attr('data-tag') + ']'; $target.attr('data-action', 'buh-yes'); $($target.attr('data-append')).html(''); getParentBlock($target).find(hiddenInput).val('not').attr('value', 'not').value = 'not'; break; case 'buh-yes': var hiddenInput = 'input[name=' + $target.attr('data-tag') + ']'; getParentBlock($target).find(hiddenInput).val('').attr('value', '').value = ''; $target.attr('data-action', settings.actionAddressMatch); break; case 'no-persons': //hide new persons hiddenInput = $target.prev('input'); personZones = $target.parents('.add-person-block').find('.new-person-zone'); if($target.is('.no-persons')) { $target.removeClass('no-persons'); personZones.removeClass('hide'); hiddenInput.val('nope'); } else { $target.addClass('no-persons'); personZones.addClass('hide'); hiddenInput.val('yes'); $('#message-no-person').find('.message-text').html(''); } break; } } } }); /** * ONLY for .back_btn, .link-btn * @param $element * @returns jquery object (parent tag) */ function getParentBlock($element) { return $element.parents('[class$="-block"],[class$="_block"]') } // --- Visual ---------------------------------------------- function showStars(){ // input var requiredLabels = $('[required]').prev('label'); requiredLabels.map(function(key, el){ $(el).addClass('required-star'); }); // for address labels $('.address-block .col-xs-17 input[required]').map(function(ind, el){ var $el = $(el); $el.parent('.col-xs-17').prev('.col-xs-7').addClass('required-star'); }); } showStars(); });
Камиль
у вас у формы событие submit не отрабатывает через js, только клик по кнопке
Илья
таки да, форма отправляецца дефолтно, без обработчика
Илья
думаецца мне не в форме дело, раз оно работало
Dmytro
==в консоле смотрю form - все норм а форма отправляет на /ur/index.php== так у формы екшн просто на index.php
Илья
так может оно туда и надо
DG
таки да, форма отправляецца дефолтно, без обработчика
а что нужно добавить? сама кнопка input type="submit" data-action="submit" value="">
DG
не факт что и работало доллги не могли вспомнить работало или нет и сошлишь они (заказчик) что типа 4-5 месяца
DG
ну submit на index
Камиль
ну submit на index
submit сработает а событие для яндекс директа не отработает
Камиль
не могло работать это точно
Камиль
только клик яндекс ловил
Dmytro
ну submit на index
как ты перебрасываеш с index.php на /ur/index.php ?
DG
я и нахожусь в разделе ......./.../ur/block1.php action="index.php" - путь то не абсолютный
DG
и submit идет на ......./.../ur/index.php
Dmytro
хм.... не доверяю я иногда такой фигне) что говорит инспектор по сабмиту? какие заголовки отправляет?
Илья
if ( goalId ) Metrics.reachGoal(goalId); попробуй закаментить, не видно где оно, как вариант еще оставить в консоли https://monosnap.com/direct/8JniFpvBK5eneGCYLDASauApSgNI0I
Илья
ну и вернуть сабмит формы как было в первом скрине
DG
DG
вот что консоль пишет
Dmytro
а пост данные летят вообще?
DG
print_r($_POST) - пусто
Dmytro
это мы поняли уже все)) я спрашиваю про консоль
Илья
блин, хорош уже стесняцца) дай линк
Илья
можно в личку, если совсем секретно))
Илья
гадать можно долго и ни к чему
Dmytro
в консоли тут
DG
гадать можно долго и ни к чему
+ помог решить - респект.
Илья
https://preview.redd.it/sg2qc6bn6ew21.jpg?width=640&crop=smart&auto=webp&s=6bb5fc463a37151c0797f46e115cb627f01197d7
Камиль
Всем привет. Вопрос не по теме. Было ло ли у вас такое, открываешь сайт всё норм, но если в iframe, то в консоли ошибка Uncaught TypeError: Object.defineProperty called on non-object и места некорректно скрипты отрабатывают (например mouseover)?
Камиль
т.к. ево фреймовая думал мб было дело 😊
Илья
может дело в CORS
Камиль
на клиенте где окно iframe http сайт который iframe https
Камиль
сейчас попробу убрать. спасибо за идею
Илья
точно cors
Камиль
точно cors
ну обычно проблема была, если сайт с https тянет что то где http
Илья
ну да, это оно
Камиль
ну да, это оно
нет дело не в этом
Андрей
Может js скрипт какой-то блокирует?
Aliaksandr
А что, на OnStripAlias второй плагин повесить нельзя?:)
Сергей
а что мешает?
Aliaksandr
Что-то мешает, не передается между ними alias
Aliaksandr
Приспичило мне к англ ветке в начале приписывать автоматом en- , а оказалось, что не прокатит так, пришлось transAlias переименовать и там прописывать это :)
Pathologic
Что-то мешает, не передается между ними alias
может через $modx->event->_output подлезть
Сергей
а перед плагином не получится свой подставить?
Pathologic
так там https://github.com/evolution-cms/evolution/blob/1.4.x/manager/includes/document.parser.class.inc.php#L6549
Aliaksandr
stopPropagation )))
Если после transAlias, то вообще труба, не срабатывает. А если до, то transAlias обновленного alias не видит:)
Aliaksandr
Сергей
да и там stopPropagation то есть типа финал
Aliaksandr
Мне почему-то казалось, что если цепочка плагинов, то в каждый последующий передается уже модифицированное в предыдущем)
Aliaksandr
да и там stopPropagation то есть типа финал
Не, тот кусок не про это:)
Aliaksandr
Это типа если несколькими плагинами выкинуть разные алиасы, то возьмется последний
Pathologic
так Макс же скинул кусок, что берётся последний
нужно чтобы плагины по цепочке модифицировали
Aliaksandr
А я думал, что если мы первым плагином модифицируем алиас, то он таким уже во второй и пойдет:)