Задать вопрос
  • Почему не ищет дочерние элементы?

    @lookingfor2 Автор вопроса
    WapSter, видимо id повторялся, я не знал что если он повторяется то при поиске будет родитель просто возвращаться
  • Почему не ищет дочерние элементы?

    @lookingfor2 Автор вопроса
    Ankhena,
    let ele = document.getElementById('modal-center2');
                 const childNodes = ele.childNodes;
    	    console.log(childNodes);


    вот так хотел все дочерние посмотреть, но их как будто нет
    и в innerhtml можно увидеть
    innerHTML:
    <p id="header_modal"> Спасибо, мы приняли Вашу заявку! </p>     <p id="text_modal"> Специалист перезвонит Вам и ответит на вопросы</p>↵            <p> Телефон горячей линии:</p>
  • Почему не ищет дочерние элементы?

    @lookingfor2 Автор вопроса
    Ankhena, а если бы искал по классу?
  • Какие грубые ошибки бросаются в глаза?

    @lookingfor2 Автор вопроса
    Спасибо большое !)
  • Почему не видит метод?

    @lookingfor2 Автор вопроса
    Onzabr, очень полезно, спасибо большое, буду изучать
  • Почему не видит метод?

    @lookingfor2 Автор вопроса
    Kovalsky, спасибо большое Вам )
  • Почему не видит метод?

    @lookingfor2 Автор вопроса
    Kovalsky, а я могу вызвать нужный метод как то с input.each(function () {}) ?
  • Как проверить есть ли объект в зоне видимости?

    @lookingfor2 Автор вопроса
    Подскажите еще, пожалуйста
    Сюда мы можем передать один аргумент для наблюдения за блоком, а если у меня много дивов за которыми нужно наблюдать, я же не могу передать сюда массив элементов с классом "animate", как быть ?
    var options = {
    			root: document.querySelector('#my-scrollbar'),
    			rootMargin: '0px',
    			threshold: 1.0
    		};
    
    		var callback = function(entries, observer) {
    			entries.forEach(entry => {
    				entry.time;               // a DOMHightResTimeStamp indicating when the intersection occurred.
    				entry.rootBounds;         // a DOMRectReadOnly for the intersection observer's root.
    				entry.boundingClientRect; // a DOMRectReadOnly for the intersection observer's target.
    				entry.intersectionRect;   // a DOMRectReadOnly for the visible portion of the intersection observer's target.
    				entry.intersectionRatio;  // the number for the ratio of the intersectionRect to the boundingClientRect.
    				entry.target;             // the Element whose intersection with the intersection root changed.
    				entry.isIntersecting;     // intersecting: true or false
    				console.log(entry.target);
    			});
    		};
    
    
    		var observer = new IntersectionObserver(callback, options);
    
    		var target = document.querySelectorAll('.animate')[1];
    
    		observer.observe(target);
  • Почему не работают исключения php?

    @lookingfor2 Автор вопроса
    Дмитрий, спасибо за подсказку
    вот код

    <?php
    include 'components/fileComponent.php';
    
    if (!empty($_FILES['Files'])) {
        $fileComponent = new fileComponent($_FILES['Files']); //Инициализируем класс
        try {
            $fileComponent->checkMime($mime);
            $fileComponent->startDownload();
    
        } catch (Exception $e) {
            $fileComponent->addError('Произошел RuntimeExeption, атеншон');
        } catch (Exception $e) {
            die($e->getMessage());
        }
    
    
        $errors = $fileComponent->isError();
        if ($errors) {
            foreach ($errors as $error) {
                echo "<div style='color: red'>Сообщение ошибки: {$error['msg']} [{$error['obj']}]</div>";
            }
        } else {
            echo 'Нет ошибок';
        }
    
    }


    <?php
    include 'components/helpers.php';
    require '../checlOnEmptyFiles.php';
    
    class fileComponent
    {
        public $files;
        public $dir;
        public $allowMime;
        public $normalSize;
        public $errors;
        public $helper;
    
        public function __construct($files, $abortDownload = false, $folder = 'files')
        {
            $this->files = $files;
            $this->dir = $_SERVER['DOCUMENT_ROOT'] . '/' . $folder . '/';
    
            $this->allowMime = [
                'application/vnd.ms-excel', 'image/jpeg', 'image/png'
            ];
            $this->normalSize = 12000;
            $this->helper = new Helpers();
    
        }
    
    
    
        public function checkMime($mime)
        {
            if (in_array($mime, $this->allowMime, false)) {
                throw new Exception("Тип данного файла не поддерживается:" . $mime);
            }
    
        }
    
        public function addError($msg, $obj = null)
        {
            $this->errors[] = [
                'msg' => $msg,
                'obj' => $obj
            ];
        }
    
        public function checkSize($size)
        {
            if (($this->files['size']) === ($this->normalSize)) {
                return true;
            }
            $this->addError('Размер данного файла большой', $this->helper->formatSize($size));
            return false;
        }
    
        public function isError()
        {
            if (!count($this->errors)) {
                return false;
            }
    
            return $this->errors;
        }
    
    
        public function startDownload()
        {
            foreach ($this->files['tmp_name'] as $key => $file) {
    
                if (!$this->checkMime($this->files['type'][$key])) {
                    continue;
                }
    
                if (!$this->checkSize($this->files['size'][$key])) {
                    continue;
                }
    
                move_uploaded_file($this->files['tmp_name'][$key], $this->dir . $this->files['name'][$key]);
    
            }
        }
    
    
    }
  • Почему не работают исключения php?

    @lookingfor2 Автор вопроса
    Максим Федоров, я пытался передать туда параметр
    пишет переменная не найдена

    <?php
    include 'components/fileComponent.php';
    
    if (!empty($_FILES['Files'])) {
        $fileComponent = new fileComponent($_FILES['Files']); //Инициализируем класс
        try {
            $fileComponent->checkMime($mime);
            $fileComponent->startDownload();
    
        } catch (Exception $e) {
            $fileComponent->addError('Произошел RuntimeExeption, атеншон');
        } catch (Exception $e) {
            die($e->getMessage());
        }
    
    
        $errors = $fileComponent->isError();
        if ($errors) {
            foreach ($errors as $error) {
                echo "<div style='color: red'>Сообщение ошибки: {$error['msg']} [{$error['obj']}]</div>";
            }
        } else {
            echo 'Нет ошибок';
        }
    
    }


    <?php
    include 'components/helpers.php';
    require '../checlOnEmptyFiles.php';
    
    class fileComponent
    {
        public $files;
        public $dir;
        public $allowMime;
        public $normalSize;
        public $errors;
        public $helper;
    
        public function __construct($files, $abortDownload = false, $folder = 'files')
        {
            $this->files = $files;
            $this->dir = $_SERVER['DOCUMENT_ROOT'] . '/' . $folder . '/';
    
            $this->allowMime = [
                'application/vnd.ms-excel', 'image/jpeg', 'image/png'
            ];
            $this->normalSize = 12000;
            $this->helper = new Helpers();
    
        }
    
    
    
        public function checkMime($mime)
        {
            if (in_array($mime, $this->allowMime, false)) {
                throw new Exception("Тип данного файла не поддерживается:" . $mime);
            }
    
        }
    
        public function addError($msg, $obj = null)
        {
            $this->errors[] = [
                'msg' => $msg,
                'obj' => $obj
            ];
        }
    
        public function checkSize($size)
        {
            if (($this->files['size']) === ($this->normalSize)) {
                return true;
            }
            $this->addError('Размер данного файла большой', $this->helper->formatSize($size));
            return false;
        }
    
        public function isError()
        {
            if (!count($this->errors)) {
                return false;
            }
    
            return $this->errors;
        }
    
    
        public function startDownload()
        {
            foreach ($this->files['tmp_name'] as $key => $file) {
    
                if (!$this->checkMime($this->files['type'][$key])) {
                    continue;
                }
    
                if (!$this->checkSize($this->files['size'][$key])) {
                    continue;
                }
    
                move_uploaded_file($this->files['tmp_name'][$key], $this->dir . $this->files['name'][$key]);
    
            }
        }
    
    
    }
  • Как реализовать это?

    @lookingfor2 Автор вопроса
    CryNet, не понял вас?
  • Можно ли вывести поля migx дочерних элементов родительским?

    @lookingfor2 Автор вопроса
    BATPYIIIKOB, у меня есть категория с товарами, у товаров есть свои характеристики
    5e3c11069ca34185774571.png

    мне нужно эти характеристики MIGX(таблица) товара вывести в категории, там где вывод всех товаров этой категории
  • Почему при обновлении страницы порядок опций меняется?

    @lookingfor2 Автор вопроса
    Rsa97, Array ( [options] => Array ( [power_blocka_pitaniya] => Array ( [id] => 13 [key] => power_blocka_pitaniya [caption] => Мощность блока питания ,Вт [description] => [measure_unit] => [category] => 15 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 450W ) [category_name] => для страницы товара ) [dop_vintelyatori] => Array ( [id] => 52 [key] => dop_vintelyatori [caption] => Число мест для дополнительной установки вентиляторов [description] => [measure_unit] => [category] => 15 [type] => textarea [properties] => [product_id] => 23 [value] => Array ( [0] => 1* на боковой крышке корпуса 92*92 мм, 1* на лицевой панели 120*120 мм, 1* на задней панели 80*80мм ) [category_name] => для страницы товара ) [sloti_rasshireniya] => Array ( [id] => 53 [key] => sloti_rasshireniya [caption] => Количество слотов расширения [description] => [measure_unit] => [category] => 15 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 4 ) [category_name] => для страницы товара ) [tiporozmer] => Array ( [id] => 38 [key] => tiporozmer [caption] => Типоразмер [description] => [measure_unit] => [category] => 14 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => Micro-Tower ) [category_name] => для главной ) [otkrivanie_corpusa] => Array ( [id] => 54 [key] => otkrivanie_corpusa [caption] => Механизм открывания корпуса [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => Съемные боковые крышки ) [category_name] => Общие характеристики ) [block_pitaniya] => Array ( [id] => 39 [key] => block_pitaniya [caption] => Блок питания [description] => [measure_unit] => [category] => 12 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => есть ) [category_name] => Общие характеристики ) [zamki] => Array ( [id] => 55 [key] => zamki [caption] => Замки блокировки корпуса [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => Петля для навесного замка ) [category_name] => Общие характеристики ) [characteristici_blocka] => Array ( [id] => 40 [key] => characteristici_blocka [caption] => Основные технические характеристики блока питания [description] => [measure_unit] => [category] => 12 [type] => textarea [properties] => [product_id] => 23 [value] => Array ( [0] => Диаметр вентилятора блока питания -120 мм разъемы подключения устройств: 4pin IDE-1шт., 15pin SATA-2 шт., защита от короткого замыкания на выходе блока питания, защита от перегрузки по напряжению, защита от проседания выходных напряжений, защита от перегрузки по току, защита драйвера от короткого замыкания. ) [category_name] => Общие характеристики ) [block_wheare] => Array ( [id] => 41 [key] => block_wheare [caption] => Расположение блока питания [description] => [measure_unit] => [category] => 12 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => Сверху ) [category_name] => Общие характеристики ) [ukladka_cabiley] => Array ( [id] => 57 [key] => ukladka_cabiley [caption] => Скрытая уклада коммуникационных кабелей [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => есть ) [category_name] => Общие характеристики ) [material] => Array ( [id] => 42 [key] => material [caption] => Материал корпуса [description] => [measure_unit] => [category] => 12 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => Сталь ) [category_name] => Общие характеристики ) [tolshina_stenok] => Array ( [id] => 43 [key] => tolshina_stenok [caption] => Толщина стенок , мм [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 0,6 ) [category_name] => Общие характеристики ) [how_match_portov] => Array ( [id] => 44 [key] => how_match_portov [caption] => Количество USB портов на лицевой панели [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 2*USB 2.0, 1*USB 3.0 ) [category_name] => Общие характеристики ) [exit_naushniki] => Array ( [id] => 45 [key] => exit_naushniki [caption] => Выход на наушники на лицевой панели [description] => [measure_unit] => [category] => 12 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => есть ) [category_name] => Общие характеристики ) [enter_microfon] => Array ( [id] => 46 [key] => enter_microfon [caption] => Вход микрофонный на лицевой панели [description] => [measure_unit] => [category] => 12 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => есть ) [category_name] => Общие характеристики ) [otceki_vneshnie_3_5] => Array ( [id] => 47 [key] => otceki_vneshnie_3_5 [caption] => Число внешних отсеков 3,5 [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => нет ) [category_name] => Общие характеристики ) [otceki_vnutrennie_3_5] => Array ( [id] => 48 [key] => otceki_vnutrennie_3_5 [caption] => Число внутренних отсеков 3,5'' [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 4 ) [category_name] => Общие характеристики ) [cvet_korpusa] => Array ( [id] => 3 [key] => cvet_korpusa [caption] => Цвет корпуса [description] => [measure_unit] => [category] => 12 [type] => combo-options [properties] => [product_id] => 23 [value] => Array ( [0] => Черный ) [category_name] => Общие характеристики ) [otceki_vneshnie_5_25] => Array ( [id] => 49 [key] => otceki_vneshnie_5_25 [caption] => Число внешних отсеков 5,25'' [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 1 ) [category_name] => Общие характеристики ) [max_height_proc_culer] => Array ( [id] => 5 [key] => max_height_proc_culer [caption] => Максимальная высота процессорного кулера , мм [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 110мм ) [category_name] => Общие характеристики ) [otceki_vnutrenie_5_25] => Array ( [id] => 50 [key] => otceki_vnutrenie_5_25 [caption] => Число внутренних отсеков 5,25'' [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 1 ) [category_name] => Общие характеристики ) [max_gabariti_mat_plati] => Array ( [id] => 8 [key] => max_gabariti_mat_plati [caption] => Максимальные габариты материнской платы [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 244*244 мм ) [category_name] => Общие характеристики ) [otseki_vnutrenie_2_5] => Array ( [id] => 51 [key] => otseki_vnutrenie_2_5 [caption] => Число внутренних отсеков 2,5 [description] => [measure_unit] => [category] => 12 [type] => textfield [properties] => [product_id] => 23 [value] => Array ( [0] => 1 ) [category_name] => Общие характеристики ) ) )
  • Почему не работает npm -i?

    @lookingfor2 Автор вопроса
    vkinder, в инструкции не написано
    Просто написать эту команду в bash или как ?
  • Почему не работает npm -i?

    @lookingfor2 Автор вопроса
    vkinder, по идее автоматически должна открыться новая вкладка в браузере с index html и должен заработать sass
    Но ничего не происходит