Задать вопрос
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Так в том то и дело, что было оба. И первый не хотел работать =)
    Вот второй заработал, и я даже почти понял, как.
    Ещё раз спасибо за помощь.
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Сергей Соколов, UPD. не могли бы вы вынести ВТОРОЙ вариант с "вытащить всё в параметры" из комментариев в "ответы", чтобы я отметил его, как "решение"?
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    UPD. не могли бы вы вынести последний вариант из комментариев ( function createSearch(selector, valFn) {... )
    в "ответы", чтобы я отметил его, как "решение"?
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Упс... извините, пожалуйста. Про второй скрипт забыл!!!
    Вот он работает на обеих страницах и по атрибуту и по инпуту.
    Спасибо!
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Спасибо. Теперь всё работает.
    А нельзя ли ещё упростить, сделав одно поле поиска... допустим $('#search'), которое будет на обеих страницах, а уже в скрипте прописать условие для выбора между .val() и .text()?

    Или не стоит овчинка выделки? Потому что придётся в скрипт пихать проверку всей таблицы на наличие атрибутов/инпутов? И если таблица будет большая то двойная проверка (сначала есть или инпут/атрибут), а потом уже поиск в ней переданного из $('#search') производительности точно не добавит.
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Уф... Извините, но я не знаю, как в песочнице ДВЕ страницы отобразить!
    То есть, в проекте есть две страницы, на каждой таблица #tabname с данными.
    Но на одной странице в таблице #tabname данные представлены в значениях инпута, а на другой странице в таблице #tabname текст в элементе h5 с атрибутом [data-item-name="name"].

    Вот я и сделал в песочнице разметку обеих таблиц, просто id="#tabname" менял в ручную для проверки.
    Вот так в проекте:
    Страница 1 (таблица с input)
    https://codepen.io/pen?template=poKweaN
    Страница 1 (таблица с атрибутами)
    https://codepen.io/pen?template=ExRXmWG
    И мне надо, чтобы этот один и тот же скрипт работал на обеих страницах.
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Извините, я не знаю, как в песочнице две страницы отобразить.
    То есть, в проекте есть две страницы, на каждой таблица #tabname с данными.
    Но на одной странице в таблице #tabname данные представлены в значениях инпута, а на другой странице в таблице #tabname текст в элементе h5 с атрибутом [data-item-name="name"].

    Вот я и сделал в песочнице разметку обеих таблиц, просто id="#tabname" менял в ручную для проверки.
    Хм... наверное так надо было...
    Страница 1 (таблица с input)
    https://codepen.io/pen?template=poKweaN
    Страница 1 (таблица с атрибутами)
    https://codepen.io/pen?template=ExRXmWG
    Скрипт на обеих страницах один и тот же
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Просто не хотел засорять вопрос. Разметка простейшая.
    Инпут
    <table id="tabname">
        <tbody>
         <tr>
          <td>
           <input type="text" name="name[]" value="Бетон" class="form-control form-control-sm">
    ....

    Атрибут
    <table id="tabname">
        <tbody>
         <tr>
          <td>
          <h5 data-item-name="name" class="d-inline me-3">Планшет</h5>
    ....

    Вот на кодепен https://codepen.io/pen?template=LYrLWvM
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Извините, ваш код слишком сложный для чайника и что не работает точно сказать не могу. Но комп выдаёт ошибку в const values = searchOptions.map(n => $(n[0]).val().toLowerCase());
    TypeError: $(...).val() is undefined
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Уф... не работает =(
    То есть работает, но ТОЛЬКО по инпутам, по атрибутам искать не хочет
    Набросал в кодепен, но всё рано не понял, почему https://codepen.io/akira13w/pen/poKweaN
  • Как объединить две функции в одну?

    @Ntvysq Автор вопроса
    Извините, но это не будет работать в случае input. Потому что .text() значений в поле input не видит.
    В этом как раз и проблема, что надо как-то менять режим поиска из .text() или .val() в зависимости от
    ('[data-item-name="name"]');
    ('input[name^=name]');
    А я не могу сообразить как это сделать, чтобы изячно и красиво =(
  • Как добавить ещё одну выборку SQL JOIN?

    @Ntvysq Автор вопроса
    Danil Sapegin, Хм... в принципе можно без отдельного запроса к tags. Ведь выбранный по категории массив уже есть, все тэги там есть... написать простейшую функцию, которая будет дубликаты выкидывать... что-то вроде:
    // $arrtags - массив из БД
    // $key - ключ 
    $tgs = list_tags($arrTable, 'tagname');
    
    function list_tags($arrtags, $key) {
    	foreach ($arrtags as $idx => $value){
    		$arr[] = $arrtags[$idx][$key];
    	};
    	$arr = implode(',', $arr);
    	$arr = explode(',', $arr);
    	$arr = array_unique( $arr );
    	return $arr;
    }
  • Как добавить ещё одну выборку SQL JOIN?

    @Ntvysq Автор вопроса
    Простите, но список использованных тегов как раз и нужно получить, потому как он принадлежит нужной категории (в запросе же указано WHERE images.category_id = 1 где как раз айдишник категории).

    Можно, наверное, в связующую таблицу images_tags добавить столбец cat_id куда вносить значение из images.category_id или создать ещё одну связующую таблицу category_tags, где связать теги с категориями, но нужно ли?
  • Как добавить ещё одну выборку SQL JOIN?

    @Ntvysq Автор вопроса
    Попробовал ваш скрипт. Не получилось почему-то. [category_tagname] вообще отсутствует в массиве выборки.

    Да и как-то уж слишком монструозно всё получается с этими вложенными селектами. Имхо, проще функцию написать, которая $arrTable[tagname] соберёт, почистит от дубликатов и выведет.

    Попробовал вот так
    $query = '
    SELECT images.name,
    GROUP_CONCAT(tags.tagname SEPARATOR ", ") AS tagname,
    category.title,
    (select GROUP_CONCAT( tagname ) as metka from tags )as metka
    FROM images
    INNER JOIN images_tags ON images.id = images_tags.images_id
    INNER JOIN tags ON images_tags.tags_id = tags.id
    INNER JOIN category ON images.category_id = category.category_id
    WHERE images.category_id = 1
    GROUP BY images.name
    ';

    Теги выводит, но, блин... в каждом вложенном массиве. То есть на выходе получаем:
    [0] => Array
        (
          [name] => Иван
          [tagname] => Человек, Мужчина
          [title] => Люди
      [metka] => Человек, Мужчина, Женщина
        )
      [1] => Array
        (
          [name] => Марья
          [tagname] => Человек, Женщина
          [title] => Люди
      [metka] => Человек, Мужчина, Женщина
        )

    UPD А, не, бредовый у меня скрипт получился. Он выводит вообще ВСЕ теги, без выборки по категории.
  • Как скрыть полосу прокрутки под блоком?

    @Ntvysq Автор вопроса
    Ростик Кальченко, Пробовал со слоем. Зафигачил слою с менюшкой z-index: 9999; а в .table-responsive вообще z-index: 0; прописал. Нулевой итог.

    UPD. Ёпт! Нашёл причину! У этого чёртового .table-responsive позиционирование отсутствует в бутстраповских стилях. А потому z-index не срабатывало. Добавил ему position: relative; z-index: 1; и прокрутка спряталась под меню!
  • Как скрыть полосу прокрутки под блоком?

    @Ntvysq Автор вопроса
    Алексей Ярков, то есть лезть в JS и там вешать на кнопку меню обработчик, который через toggle будет добавлять в .table-responsive ещё классы типа "активе" - "деактиве"? А это не сильно извращённое колдунство? Обычных способов нет?
  • Как скрыть полосу прокрутки под блоком?

    @Ntvysq Автор вопроса
    Ему - это кому? .table-responsive ? Так этот класс специально предназначен, чтобы таблица на мобильниках прокручивалась. Если я ему overflow-x: hidden приделаю, нафиг он вообще будет нужен?
  • Как получить превьюшку (thumbnail) с RUTUBE?

    @Ntvysq Автор вопроса
    О как... хм... То есть выковыривать две пары с айдишника и подставлять... Мда, без танцев с бубном ну никак нельзя, ибо рашен-кодинг он такой - суровый и беспощадный =)
    Спасибо.
  • Как получить превьюшку (thumbnail) с RUTUBE?

    @Ntvysq Автор вопроса
    О! Спасибо большое, это работает! Ещё один вопрос, если позволите. Не подскажите, можно ли вытащить маленькое превью?
    То есть вот это rutube.ru/api/video/{videoId}/thumbnail/?redirect=1 тягает большую картинку (1280*720), а нельзя ли вытянуть с "size=m"? Увы, в лоб ...{videoId}/thumbnail/?redirect=1&size=m не получается.
  • Как добавить строку в конец таблицы через JS?

    @Ntvysq Автор вопроса
    Не помогает. То есть, визуально оно работает, браузер отображает как надо, но вот "Инструментах разработчика" видно, что val(''); нифига не меняется.
    634244b80c14b614103550.jpeg
    Ну и, соответственно, при отправке данных через форму передаются старые значения, что ты не вводи.
    Бред какой то, блин. О_О