• Как во Vue Router указать не обязательную часть url?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    На обычном Vue роутере такие маршруты делаются примерно так:
    {
    		path: '/catalog/mebel', 
    		children: [
    			{
    				path: 'page-:page(\\d+)?', 
    				alias: '',
    				component: Mebel,
    			},
    			{
    				path: ':category', 
    				children: [
    					{
    						path: 'page-:page(\\d+)?', 
    						alias: '',
    						component: MebelCategory
    					},
    					{
    						path: ':article', 
    						component: MebelArticle
    					}
    				]
    			},
    		], 
    	}



    В nuxt это можно добавить\изменить тут.
    Ответ написан
    Комментировать
  • Как отправить несколько данных и несколько фото одновременно?

    @Paul14
    Вот пример кода функции jQuery AJAX для отправки множества фотографий через FormData в обработчик PHP:

    function uploadPhotos() {
        var formData = new FormData();
        var photos = $('#fileInput')[0].files; // получение массива выбранных файлов
        for (var i = 0; i < photos.length; i++) {
            formData.append('photos[]', photos[i]); // добавление фотографий в FormData
        }
    
        $.ajax({
            url: 'upload.php',
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            success: function(response) {
                console.log(response);
                // Действия после успешной загрузки
            },
            error: function(xhr, status, error) {
                console.log(xhr.responseText);
                // Действия в случае ошибки
            }
        });
    }


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

    А вот пример кода PHP функции, принимающей массив фотографий и сохраняющей их на сервере:

    <?php
    if(isset($_FILES['photos'])) {
        $photos = $_FILES['photos'];
        $uploadedFiles = [];
        foreach($photos['tmp_name'] as $key => $tmp_name) {
            $file_name = $photos['name'][$key];
            $file_tmp = $photos['tmp_name'][$key];
            $file_type = $photos['type'][$key];
            $file_size = $photos['size'][$key];
            
            $new_file_name = md5(time() . $file_name) . '.' . pathinfo($file_name, PATHINFO_EXTENSION);
            $destination = 'uploads/' . $new_file_name;
            
            if(move_uploaded_file($file_tmp, $destination)) {
                $uploadedFiles[] = $destination;
            }
        }
        
        if(!empty($uploadedFiles)) {
            // Действия после успешной загрузки
            echo "Фотографии успешно загружены";
        } else {
            // Действия в случае ошибки
            echo "Ошибка загрузки фотографий";
        }
    }
    ?>


    В примере предполагается, что фотографии будут сохраняться в папку "uploads". Каждая фотография будет переименована в формате md5(время + имя файла).формат. Если загрузка прошла успешно, функция выведет "Фотографии успешно загружены", иначе "Ошибка загрузки фотографий".
    Ответ написан
    5 комментариев
  • Как это сверстать с учётом мобильной версии?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Линии идут через каждые две строки. То есть это просто фоновая картина с повторением через 2em
    Ответ написан
    7 комментариев
  • Как найти точное совпадение всех элементов массива в объекте?

    XanXanXan
    @XanXanXan
    Функция ничего не возвращает. Ну и со скобками беда.

    spoiler
    function getKiller(suspects, dead) {
      return Object.entries(suspects).find(suspect => dead.every(d => suspect[1].includes(d)))[0];
    }
    Ответ написан
    2 комментария
  • Верстка сложных кнопок адаптив?

    @alexalexes
    64997c8329d1e269390254.png
    Если без svg, то можно сделать 3-мя текстурами.
    Кнопка будет фиксированной высоты, но безразмерна по горизонтали.
    Ответ написан
    1 комментарий
  • Как правильно задавать z-index?

    szQocks
    @szQocks
    Попробую расписать о том как работает z-index.

    К примеру есть 2 дива c разным z-index, по умолчанию у них нет контекста стекирования потому что по умолчанию у них position: static; - а это позиционирование не создаёт контекст для z-index, и не важно сколько бы был z-index у .gg, нижний блок всегда будет его перекрывать, а если бы у них бы был контекст и одинаковый z-index то перекрывал бы нижний в иерархии html элемент

    <div class="gg"></div>
    <div class="tt"></div>


    а вот и стили к ним

    .gg{
      z-index: 999;
      width: 100px;
      height: 100px;
      background: red;
    }
    
    .tt{
      z-index: 2;
      width: 100px;
      height: 100px;
      background: blue;
      margin-top: -50px;
    }


    Из документации сказано в каких случаях создаётся контекст стекирования
    1 - является корневым элементом (то есть HTML)
    2 - позиционирован абсолютно (position:absolute) или относительно (position:relative) с z-index значением отличным от "auto"
    3 - flex элемент с z-index отличным от "auto", чей родительский элемент имеет свойство display: flex или display: inline-flex;
    4 - display: inline-flex;
    5 - элементы с opacity меньше чем 1
    6 - элементы с transform отличным от "none"
    7 - элементы с mix-blend-mode значением отличным от "normal"
    8 - элементы с filter значением отличным от "none"
    9 - элементы с isolation установленным в "isolate"
    10 - position: fixed;
    11 - если мы указываем элементу атрибут will-change при этом не обязательно присваивать ему значения
    12 - элементы с -webkit-overflow-scrolling (en-US) установленным в "touch"
    13 - grid элемент с z-index отличным от "auto", чей родительский элемент имеет свойство display: grid

    Если нужно что бы .gg - перекрывал нижний по иерархии html элемент, мы можем задать для .gg - один из перечисленных вариантов, например display: inline-flex; или position: relative; или же задать например родителю этих двух блоков display: flex; flex-direction: column; ( и блоки .gg .tt раз они станут флекс элементами то и z-index будет работать между ними, несмотря на то какой из них ниже а какой выше в иерархии html )

    ----------------------------------------------------------------------------------------------- -------------------------

    Следующий пример который как раз таки возможно даст тебе понять о том как работает наконец таки z-index у детей.

    Добавим потомка для дива с классом gg в данном случае это див с классом gg__children
    <div class="gg">
      <div class="gg__children"></div> // потомок
    </div>
    <div class="tt"></div>


    а вот и стили

    .gg{
      width: 100px;
      height: 100px;
      background: red;
      z-index: 999;
    }
    
    .gg__children{
      width: 50px;
      height: 200px;
      background: green;
      z-index: 100;
    }
    
    .tt{
      width: 100px;
      height: 100px;
      background: blue;
      margin-top: -50px;
      z-index: 2;
    }


    так вот сколько угодно можно задавать потомку z-index , он всё равно выше z-index родителя прыгнуть не сможет,
    а раз его родитель .gg - не имеет свой контекст и раз он находится выше в иерархии html то и соответственно .tt перекроет их всех

    Советую как можно проще его использовать но зная основные принципы , или изучать от А до Я и проникнуть в саму суть его работы.

    Документация
    Ответ написан
    4 комментария
  • Разработчик недисциплинированно трекает время. Что делать?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Вы рассмотрели возможные причины "со своей колокольни" и сами дали на них ответ. Что показывает Ваш авторитарный (директивный) стиль управления.
    Постарайтесь быть ближе к подчинённым, разговаривайте с ними, вникайте в их проблемы. Тогда они сами расскажут - почему они не трекают, а Вы поймёте как это решить.
    Сейчас у Вас нет обратной связи.
    Ответ написан
    Комментировать
  • Как получить ответ от файла(например main.php) в форме?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    Гуглите Ajax (fetch) и REST API, там ответы =)

    Если вкратце, то вам нужно через js отправить запрос, который php по данному адресу примет, обработает и вернет результат (очень часто используется ответ в формате json, но не обязательно).
    Ответ написан
    Комментировать
  • Как определить длину числа через регулярку?

    XanXanXan
    @XanXanXan
    Потому что внутри 12345678910111213 есть число от 1 до 12.

    /^\d{1,12}$/
    Ответ написан
    7 комментариев
  • Как можно сверстать градиентный бордер на градиентном фоне?

    UnluckySerivelha
    @UnluckySerivelha
    Прозрачность использовать нельзя, подбирайте цвет без использования прозрачности
    Ответ написан
    6 комментариев
  • Как исправить долгое выполнение запросов на большой таблице?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    возможно вся логика неправильная и можно сделать более грамотно.


    Штирлиц шел по Берлину, и не мог понять, что выдавало в нем русского шпиона - то ли рация за спиной, то ли волочащийся сзади парашют, то ли болтающийся на груди ППШ.

    когда записей в таблице порядка 10 миллионов время выполнения запроса


    ВНЕЗАПНО оказалось, что если использовать микроскоп для забивания гвоздей, то в него становится почему-то плохо видно.

    В простой БД два поля - id и data. У поля data тип JSON. В нем хранятся данные, получаемые из нескольких форм.


    Но вы же, когда эту, с позволения сказать, "базу данных" проектировали, ведь радовались своему остроумию и хитрости? Зачем проектировать структуру базы данных, делать какие-то таблицы, между таблицами связи. потом сложные запросы писать? Если можно хопа, и в джейсон все кучей навалить!

    Ну вот и продолжайте радоваться дальше.

    Сама по себе дурацкая проблема проверки уникальности длинного текста решается элементарно, добавляется колонка с md5 от содержимого, и поиск делается по ней.
    Но ведь в таблицу эти данные складываются не только чтобы проверять их на уникальность. И собственно какая-то работа с этими данными все равно превратится в боль
    Ответ написан
    3 комментария
  • Будет ли читабелен текст в 3 колонки на мобильных устройствах?

    @karminski
    Senior React.JS Developer
    С учётом того, что мы привыкли скроллить страницу сверху вниз, колонки ни в каком виде не будут удобны для чтения.
    Ответ написан
    Комментировать
  • Как сделать анимацию курсора под текстом?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Можно конечно отключать poiner-events, но если включать его для текста, то это всё равно приведёт к той же проблеме. Что под текстом не будет работать.

    Поковырял немного:


    Основное что изменил - отслеживание событий mousemove не на канвасе, а на всей секции и e.offsetX на e.clientX
    Ответ написан
    2 комментария
  • Программирования учат или применяют?

    Newto
    @Newto
    Добрый день. Я перечитал все ответы выше, а так же комментарии к ним. Решил прокомментировать, с точки зрения своего опыта(я занимаюсь разработкой уже более 15-ти лет). Для удобства чтения я буду писать по пунктам.

    1) Зубрёжка. Каждого из нас, кто ходил в школу, заставляли зубрить таблицу умножения. И, в конце-концов, это помогало в последующем обучении математики, не правда ли? В программировании есть такие же вещи, которые называются "стандарты". Вот эти стандарты и нужно, для начала, зазубрить. А позже и вникнуть, зачем они придуманы.

    2) Методика "объяснение и практика". Вы пишете, что "при таком способе мне приходится одно и тоже глазами несколько раз пробегать чтобы запомнить". Это, с моей точки зрения, в корне не верно. Ибо то, что вам объясняют, не нужно "пробегать глазами" несколько раз, что бы запомнить. Это вообще не нужно запоминать если это не те самые "стандарты"; это нужно осмыслить и понять. После того, как к вам придёт понимание как это работает, зачем и почему это надо -- вы сможете это использовать, осмысленно, в собственном коде.

    3) Платные курсы. Курсы ныне очень разные. Кто-то просто, простите, гребёт бабло на этом всём. А кто-то преподаёт с душой, хорошо и понятно рассказывая. Поэтому платный курс -- это хорошо, но только тогда, простите за тавтологию, когда это хороший курс. Читайте отзывы о курсе, советуйтесь с теми кто его уже прошёл(в идеале) и тогда уже решайте, тот ли этот курс, что даст вам необходимые знания.

    4) ВУЗ. Более 10-ти лет назад, у меня в подчинении, в вебстудии, работал PHP джун. Он доучивался в МГТУ имени Баумана. И он не знал ничего. Совсем. Мне приходилось объяснять ему простейшие вещи, типа что значит иструкция "$a += $b;". Сам же я учился в ВУЗе малоизвестном, на факультете "прикладная информатика в экономике" и наш преподаватель информатики, на первом курсе, на вопрос что значит в коде программы на языке C++ инструкция "с++" ответил, что это "так язык называется". Однако, вскоре ко мне начали ходить сокурсники, с просьбами "а напиши программку". И происходило это потому что я сам загорелся программированием, купил книжки, установил всё что нужно было установить на компьютер и начал "творить волшебство", как это мне тогда виделось, с горящими глазами. Короче говоря не нас учат ВУЗы, а мы учимся в ВУЗах или учимся без них. Тут уж как пойдёт.

    5) Ну и последний, самый важный, с моей точки зрения, пункт. Это Интерес. Если вам интересно программирование, вам нравится разбираться, что-то делать самостоятельно, а не только тогда когда кто-то поставил задачу, то у вас все получится. И как именно это всё учить у вас вопроса, в конце концов, не возникнет. Разбирайтесь, ковыряйте, вникайте и всё будет. Единственное что -- очень желательно, что бы перед вашими глазами были хорошие примеры. Потому что я, в свое время, тоже разбирался, учился и вникал, "гладили по голове", как писали выше в комментариях к одному из ответов, меня уже мои наниматели, потому что я все делал быстро и без ошибок, т.е. работало все так, как было нужно клиентам веб-студии, собеседование в которую я тогда прошел без каких-то проблем. Но вот мой код тогда был, откровенно говоря, тем, что сейчас называется "говнокодом". Потому что некому было мне показать как писать есть хорошо, а как есть плохо.

    Подыдожу -- ключи к быстрейшему развитию в деле разработки это ваш интерес к этому делу, желание им заниматься и примеры хорошего, качественного кода перед глазами. А так же кто-то, кто сможет технически оценить вашу работу и, без агра, с конструктивом, показать и рассказать что вы сделали не так.
    Ответ написан
    25 комментариев
  • Изучение Laravel, с чего начать?

    Рано имхо. Ларавел прост только если php знаешь. Сделай сначала пару простых сайтов на голом php, граббер пикабу с добавлением своих новостей, например, плюс какой-нибудь бложек или иной парсер. Потом посмотри, как работают разные cms, вордпресс, опенкарт, сделай на них несколько сайтов и напиши пару плагинов для каждого. Пускай они говеные будут, главное чтобы свои функции исполняли. Я лично после голого пхп и нескольких cms потренировался хорошо на опенкарте - у него очень простая для понимания структура, такое сферическое mvc в вакууме для изучения, потом кохану попробовал (она легче ларавела и приложения на ней по структуре похожи на опенкарт, но без уклона в магазины) и только после этого на ларавел перешел. Ларавел хорош, но надо некий базис в голове иметь и опыт, чтобы на нем что-то делать.
    Ответ написан
    Комментировать
  • На чем лучше написать Desktop приложение?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    • .Net + C#
    • Qt + C++

    Оба варианта будут отличным выбором. Да, у обоих есть свои минусы и плюсы, но в целом под ваши задачи отлично подходят.
    Ответ написан
    Комментировать
  • Как экспортировать товары с html сайта без базы данных?

    @Giperoglif
    1. спарсить в базу данных.
    2. написать скрипт импорта в CMS из неё.

    либо сразу спарсить в CMS.
    Ответ написан
    Комментировать
  • Как свободно трансформировать углы блока / сверстать это?

    @coder_racer
    clip-path: polygon(46% 0, 45% 50%, 100% 50%, 100% 100%, 0 100%, 0 0);
    https://bennettfeely.com/clippy/
    Ответ написан
    Комментировать