Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

DanKud

  • 236
    вклад
  • 12
    вопросов
  • 268
    ответов
  • 59%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как спарсить ссылку на изображение?

    DanKud @DanKud
    Не знаю, что у вас за функция Parse(), но парсите регулярками. Картинки можно спарсить так:

    preg_match_all('#<img\s*src="(.+?)"\s*data-original#', $str, $m);
    $imageLinks = $m[1];
    print_r($imageLinks);

    Если парсить приходится много, то можно подключить сторонние библиотеки для удобного парсинга.
    Например DomCrawler
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как в javascript обратиться к родителю текущего элемента и найти в нем элемент?

    DanKud @DanKud
    document.querySelectorAll('.faq_item_title_inner').forEach(el => {
        el.addEventListener('click', function() {
            let slide = this.closest('.faq_item').querySelector('.faq_item_body');
            slide.style.display = (slide.offsetWidth > 0 || slide.offsetHeight > 0) ? 'none' : 'block';
            this.classList.toggle('open');
        })
    });

    На счет анимации и остальных функций читайте тут:
    https://github.com/nefe/You-Dont-Need-jQuery
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как после выбора radio скрыть остальные?

    DanKud @DanKud
    $('.radio-blue').not($(this).closest('.radio-blue')).add($('.all_pvz')).hide();
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать GET запрос если его не видно в URL?

    DanKud @DanKud
    <form method="GET" action="del-post.php">
        <input type="hidden" name="delete_id" value="<?php echo $article_info['article_id'];?>">
        <button type="submit" class="btn btn-danger btn-lg" data-toggle="modal" data-target="#delModal">Удалить</button>
    </form>

    или

    <a href="del-post.php?delete_id=<?php echo $article_info['article_id'];?>">
        <button type="submit" class="btn btn-danger btn-lg" data-toggle="modal" data-target="#delModal">Удалить</button>
    </a>
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как проверить состояние checkbox с помощью jquery?

    DanKud @DanKud
    let checkboxes = $('.form__chekbox:not(.form__chekbox_all)');
    checkboxes.on('click', () => {
        let status = (!checkboxes.is(':checked')) ? true : false;
        $('.form__chekbox_all').prop('checked', status);
    });
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как добавить класс только конкретной ссылке?

    DanKud @DanKud
    $('.header__link-category').on('mouseover', function() {
        setTimeout(() => {
            $(this).addClass('hover-active');
        }, 1000);
    });
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Почему Echo с php кодом не работает?

    DanKud @DanKud
    Если принципиально на Heredoc, то так:
    function autov($href) {
        return $href;
    }
    
    function basefiles($autov) {
        echo <<<EOT
            <script language='javascript' type='text/javascript' src='/scripts/jquery.min.js'></script>
            <script language='javascript' type='text/javascript' src='{$autov('/scripts/main.js')}'></script>
            <meta charset='utf-8'>
            <link rel='stylesheet' href='{$autov("/styles/main.css")}'>
    EOT;
    };
    
    $autov = 'autov';
    
    basefiles($autov);
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как организовать использование API по паре ключ-сайт?

    DanKud @DanKud
    При запросах к API из скриптов на бэкенде можно легко подменить Referer и прописать любой, либо вообще не прописывать его. То есть нет практически никакого смысла привязывать токен к запросам с определенного сайта, потому что это легко подменяется.

    Проверить Referer можно так:
    echo $_SERVER['HTTP_REFERER'];
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Proxifier и Steam SDA - Почему закрывается соединение?

    DanKud @DanKud
    Все нормально. Так и должно быть. Proxifier не будет держать соединение бесконечно если оно не требуется. Если у вас SDA работает просто в режиме отображения кода для двухфакторной аутентификации, то он никаких данных не отправляет. Но в таком случае вопрос - зачем вам вообще через прокси прогонять SDA? Затем когда SDA будет требоваться новое соединение оно так же пойдет через Proxifier. Можете проверить это например обновив сессию в SDA (если не ошибаюсь пункт меню "Force session refresh"). После нажатия у вас снова будет коннект к API Steam.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как на jquery добавлять css класс родителю если у ссылки нет своего css класса?

    DanKud @DanKud
    $('.coll').on('click', function () {
        $('.zind').removeClass('zind');
        $(this).parent('div').addClass('zind');
    })
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сравнить две даты по минутам?

    DanKud @DanKud
    let date1 = new Date('2020-05-08 12:51').getTime();
    let date2 = new Date('2020-05-08 12:52').getTime();
    
    /* переводим timestamp в минуты */
    date1 = Math.floor((date1 / 1000 / 60));
    date2 = Math.floor((date2 / 1000 / 60));
    
    /* сравниванием минуты */
    if (date1 === date2) {
        console.log('время в минутах совпадает');
    } else {
        console.log('время в минутах НЕ совпадает');
    }
    
    /* или через тернарный оператор:
        (date1 === date2) ? 'время в минутах совпадает' : 'время в минутах НЕ совпадает';
    */
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как получить данные с checkbox?

    DanKud @DanKud
    Вам нужно передать массив чекбоксов "add", а не присваивать каждому чекбоксу отдельное имя. И из этого массива вы получите значения отмеченных чекбоксов.

    Например:
    <input type="checkbox" name="add[]" value="101"> <!-- id товара в value -->
    <input type="checkbox" name="add[]" value="102">
    <input type="checkbox" name="add[]" value="103">

    print_r($_POST['add']); // в $_POST['add'] у вас массив всех отмеченных id

    или как предложили в ответе выше - отправить массив с ключами и взять значения ключей:
    <input type="checkbox" name="add[101]" value="on"> <!-- id товара в ключе массива -->
    <input type="checkbox" name="add[102]" value="on">
    <input type="checkbox" name="add[103]" value="on">

    $ids = array_keys($_POST['add']); // в $ids у вас массив всех отмеченных id
    print_r($ids);
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как спарсить значение атрибута тега?

    DanKud @DanKud
    const date = el.querySelector('time').getAttribute('title');
    console.log(date);
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как добавлять класс только конкретному элементу по которому нажали?

    DanKud @DanKud
    $('.item').click(function() {
        $('.active').removeClass('active');
        $(this).addClass('active');
    });
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как запретить ввод букв в инпут?

    DanKud @DanKud
    <input type="text" class="text">

    $('.text').on('input', function() {
        $(this).val($(this).val().replace(/[A-Za-zА-Яа-яЁё]/, ''))
    });
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как остановить выполнение функции?

    DanKud @DanKud
    Ваш return срабатывает для метода success, а не для самой функции. Покажите как вы несколько раз вызываете AJAX-запрос, чтобы понять что к чему, потому что сам AJAX-запрос тут ни о чем не говорит.

    Можно сделать так:
    async function function_js_save() {
        let status = await new Promise(resolve => {
            $.ajax({
                url: '../../modules/ajax.php',
                type: "POST",
                data: ({
                    check_region_and_pult_number: ''
                }),
                dataType: "html",
                success: function (status) {
                    resolve(status);
                }
            });
        });
    
        if (status.length > '2') {
            status_workings = status.length;
            alert_error(status);
            return;
        }
    
        console.log('next');
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно привести значения в массиве к типу int?

    DanKud @DanKud
    На счет правильности или неправильности тут вопрос мне кажется ставить не совсем корректно. Как вам удобнее, так и делайте. Тут больше вопрос в том - какой вообще по сути смысл приводить значение к (string) в вашем первом примере? При нестрогом сравнение (то есть без третьего параметра true) это по сути будет сделано автоматически. Я лично в такой ситуации вообще не вижу смысла от строго сравнения типов. Просто то преобразование типов, которое вы хотите делать, будет сделано автоматически при нестрогом сравнение самим интерпретатором.

    Перебор массива можно также сделать с помощью array_map:

    $arr = array_map(function($n) {
        return (int)$n;
    }, $arr);
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как в литерале объекта задать имя свойства на основе переменной?

    DanKud @DanKud
    [имя переменной]: inputName_Name
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Правильное экранирование кавычек для CSV?

    DanKud @DanKud
    "текст ""слово"""
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Вопрос об асинхронности. Как получить значение из метода?

    DanKud @DanKud
    Если Wallet.getBalance возвращает промис, то можно так:

    (async () => {
        const user_balance = await Wallet.getBalance((err, balance) => {
            console.log(balance.accounts[0].balance.amount);
            return balance.accounts[0].balance.amount;
        })
    
        console.log(user_balance);
    })();
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Mike_Ro
    Михаил Р.
    • 7 ответов
    • 0 вопросов
  • shambler81
    Виктор Таран
    • 6 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 5 ответов
    • 0 вопросов
  • SunTechnik
    • 3 ответа
    • 0 вопросов
  • VoidVolker
    VoidVolker
    • 3 ответа
    • 0 вопросов
  • rPman
    • 3 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации