• Как принять serializeArray в php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну зачем-же так убиваться?! Вы же так никогда не убьётесь!!!
    foreach ($_POST as $key => $value) {
            // добавим в переменную $data имя и значение ключа
            if (is_array($value)) {
                    // ....
            }
            else {
                    $data .= $key . ' = ' . $value . '';
            }
    }
    Ответ написан
    Комментировать
  • Как динамически у квиза вывести шаги и давать класс активному?

    Так сделай хотя бы так же как у тебя уже сделано перелистывание вопросов.
    const quizzes = document.querySelectorAll(".calc__fields");
    quizzes.forEach((quiz) => {
      const questions = quiz.querySelectorAll(".fields__field"),
        btnsPrev = quiz.querySelectorAll(".btn-prev"),
        btnsNext = quiz.querySelectorAll(".btn--icon-next"),
        stages = quiz.querySelectorAll(".fields__stage");
      console.log(stages)
    
      // progress
      // const progressCount = questions.length;
    
      btnsNext.forEach((btnNext, btnNextIndex) => {
        btnNext.addEventListener("click", (e) => {
          e.preventDefault();
    
          questions[btnNextIndex].classList.remove("_active");
          questions[btnNextIndex + 1].classList.add("_active");
          
          stages[btnNextIndex].classList.remove("_active");
          stages[btnNextIndex + 1].classList.add("_active");
          
        });
        if (!questions[btnNextIndex].classList.contains("_range")) {
          btnNext.disabled = true;
        }
      });
      
      btnsPrev.forEach((btnPrev, btnPrevIndex) => {
        btnPrev.addEventListener("click", (e) => {
          e.preventDefault();
    
          questions[btnPrevIndex + 1].classList.remove("_active");
          questions[btnPrevIndex].classList.add("_active");
        });
      });
      
      questions.forEach((question, questionIndex) => {
        if (questionIndex === 0) {
          question.classList.add("_active");
        } else {
          question.classList.remove("_active");
        }
        question.addEventListener("change", (e) => {
          const target = e.target,
            inputsChecked = question.querySelectorAll("input:checked");
          if (
            inputsChecked.length > 0 ||
            target.classList.contains("range__input")
          ) {
            btnsNext[questionIndex].disabled = false;
          } else {
            btnsNext[questionIndex].disabled = true;
          }
        });
      });
    });
    Ответ написан
  • Как отображать число с пробелом?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Так вот, все нормально работает до тех пор пока цена будет без пробела.


    Вы вкурсе как работают числа? Если вы ставите пробел, тогда ваше число уже не является числом, а является строкой

    Вы должны работать с числами в оригинальном виде, т.е. без пробелов, таких стандартнов придерживаются программисты. При выводе вы можете их выводить как хотите, хоть на шахматной доске, но изначально вы должны работать с числами в таком виде, как они есть
    Ответ написан
    Комментировать
  • Как отображать число с пробелом?

    @WAR_VIK
    Вот так можно:
    function display_with_spaces(num) {
          let str = String(num);
          let left = str.length % 3;
          let res = '';
          let ind = 0;
          if(left > 0) {
                 res = str.substr(ind, left) + ' ';
                 ind += left;
                 while(ind < str.length) {
                        res += str.substr(ind, 3);
                        if(str.length - ind > 3) res = res + ' ';
                        ind += 3;
                 }
          }
          else {
                 while(ind < str.length) {
                       res += str.substr(ind, 3);
                       if(str.length - ind > 3) res = res + ' ';
                       ind += 3;
                }
          }
          return res;
    }
    Ответ написан
    Комментировать
  • Как отображать число с пробелом?

    @LJ322
    price.dataset.total = parseInt(startPrice.replaceAll(' ', ''));
    Ответ написан
    2 комментария
  • Как убрать действие preventDefault у ссылок в подмени?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Чтобы убрать e.preventDefault() для ссылок в подменю, вам нужно добавить проверку на target с помощью if в теле функции handlerItem(). Ниже приведен измененный код:
    document.addEventListener('DOMContentLoaded', () => {
      const submenuItem = document.querySelectorAll(".header .menu-item-has-children");
      const menuBody = document.querySelector(".sub-menu");
    
      submenuItem.forEach((item) => {
        item.addEventListener('click', handlerItem);
    
        // слушаем клик вне меню
        document.addEventListener("click", function (e) {
          const target = e.target;
          const its_menu = target == menuBody || menuBody.contains(target);
          const its_btnMenu = target == menuBody;
          const menu_is_active = item.classList.contains("--show");
    
          if (!its_menu && !its_btnMenu && menu_is_active) {
            item.classList.toggle("--show");
          }
        });
    
        // слушаем скролл
        document.addEventListener("scroll", function () {
          //убираем класс если произошел скролл
          item.classList.remove("--show");
        });
      });
    
      function handlerItem(e) {
        if (e.target.classList.contains('sub-menu-link') || e.target.closest('.sub-menu-link')) {
          // если нажата ссылка в подменю, то предотвращаем действие по умолчанию только для нее
          return;
        }
    
        e.preventDefault();
        e.stopPropagation();
    
        this.classList.toggle("--show");
      }
    });


    Я добавил проверку на класс sub-menu-link для e.target и его ближайшего родителя с помощью метода closest(). Если элемент, на который был клик, имеет класс sub-menu-link или является его потомком, тогда e.preventDefault() не выполняется и действие по умолчанию будет выполнено.
    Ответ написан
    Комментировать