Задать вопрос
  • Как разбить строку через один?

    @Nc_Soft
    <?php
    $str = 'Параметр 1, Параметр 2, Параметр 3, Параметр 4, Параметр 5, Параметр 6, Параметр 7, Параметр 8, Параметр 9, Параметр 10';
    $p = array_map(function($v) {
        return implode(',', $v);
    }, array_chunk(explode(',', $str), 2));
    print_r($p);
    Ответ написан
    Комментировать
  • Как разбить строку через один?

    0xD34F
    @0xD34F
    $result = array_map(fn($n) => implode(',', $n), array_chunk(explode(',', $str), 2));

    или

    preg_match_all('~[^,]+,[^,]+~', $str, $match);
    $result = $match[0];
    Ответ написан
    Комментировать
  • Как выполнить php скрипт по нажатию кнопки без перезагрузки?

    kgb_zor
    @kgb_zor
    I need your traceback.
    $('#btn').on('click', function(){
    $.ajax({
      url: 'script.php',
      success: function(data) {
       alert('Success')
      }
     });
    })
    Ответ написан
    4 комментария
  • Как суммировать значения из getElementById и getElementsByClassName?

    byte916
    @byte916
    Во-первых, для выкладывания кода можно пользоваться такими сервисами, как jsfiddle.net
    Во-вторых, если вы точно значете что у вас только каждого элемента только по одному экземпляру, то не обязательно проходить циклом по ним.
    В-третьих, чтобы ваши цифры были цифрами с точки зрения javascript, нужно конвертировать их в цифры (например, parseFloat)
    И тогда всё получится. Вот рабочий пример (последние две строчки - чтобы функция срабатывала при вводе текста)

    update: решение для нескольких выводимых элементов
    Ответ написан
    2 комментария
  • Как суммировать значения из getElementById и getElementsByClassName?

    fast-je
    @fast-je
    Пишу на php.
    document.addEventListener("DOMContentLoaded", function(event) {
      var input1 = document.querySelector("#a");
      var input2 = document.querySelector(".b");
      
      input1.addEventListener("input", function(e) {
      document.querySelector(".result").innerHTML = "";
      if(parseFloat(input1.value)) {
          document.querySelector(".result").innerHTML = parseFloat(input1.value) + parseFloat(input2.value);
      }
      });                         
    });
    Ответ написан
    Комментировать
  • Как суммировать значения из getElementById и getElementsByClassName?

    @nandeaitsurawapinku
    <input type="text" id="a" value="">
    
    <input type="hidden" class="b" value="5">
    
    <p class="result"></p>


    var a = document.querySelector('#a')
    var b = document.querySelector('.b')
    
    var result = document.querySelector('.result')
    
    a.addEventListener('input', function() {
    	if (a.value) {
      	result.innerHTML = parseInt(a.value) + parseInt(b.value)
    	}
    })
    Ответ написан
    Комментировать
  • Как сделать фильтр по нескольким параметрам?

    evorios
    @evorios
    У меня в проекте недавно была такая же задача. Я сделал её на основе CSS правил. Надеюсь, тебе такое решение тоже понравится.

    https://jsfiddle.net/b0t3876r/23/

    HTML
    <div class="filter-control">
      <ul data-f1="a">
        <li><a data-f2="Chicago" href="#">Chicago</a></li>
        <li><a data-f2="Houston" href="#">Houston</a></li>
        <li><a data-f2="Dallas" href="#">Dallas</a></li>
      </ul>
    
      <ul data-f1="b">
        <li><a data-f2="Chicago" href="#">Chicago</a></li>
        <li><a data-f2="Houston" href="#">Houston</a></li>
        <li><a data-f2="Dallas" href="#">Dallas</a></li>
      </ul>
    
      <ul data-f1="c">
        <li><a data-f2="beer" href="#">beer</a></li>
        <li><a data-f2="whiskey" href="#">whiskey</a></li>
      </ul>
    </div>
    
    <div class="filteredblock a b c">
    
      <div class="a-Chicago b-Houston c-beer">Chicago Houston beer</div>
      <div class="a-Chicago b-Houston c-whiskey">Chicago Houston whiskey</div>
      <div class="a-Chicago b-Dallas c-beer">Chicago Dallas beer</div>
      <div class="a-Chicago b-Dallas c-whiskey">Chicago Dallas whiskey</div>
      <div class="a-Houston b-Chicago c-beer">Houston Chicago beer</div>
      <div class="a-Houston b-Chicago c-whiskey">Houston Chicago whiskey</div>
      <div class="a-Houston b-Dallas c-beer">Houston Dallas beer</div>
      <div class="a-Houston b-Dallas c-whiskey">Houston Dallas whiskey</div>
      <div class="a-Dallas b-Chicago c-beer">Dallas Chicago beer</div>
      <div class="a-Dallas b-Chicago c-whiskey">Dallas Chicago whiskey</div>
      <div class="a-Dallas b-Houston c-beer">Dallas Houston beer</div>
      <div class="a-Dallas b-Houston c-whiskey">Dallas Houston whiskey</div>
    
    </div>

    JavaScript
    $(function () {
      var $list = $('.filteredblock');
    	$('.filter-control a').on('click', (e) => {
        var $a = $(e.target);
        var $li = $a.parent();
        var $ul = $li.parent();
        var f1 = $ul.data('f1');
        var f2 = $a.data('f2');
        
        $li.toggleClass('checked');
        if ($li.hasClass('checked')) {
        	$list.addClass(`${f1}-${f2}`).removeClass(`${f1}`);
        } else {
        	$list.removeClass(`${f1}-${f2}`);
          if (!$ul.find('.checked').length)
          	$list.addClass(`${f1}`);
        }
        return false;
      });
    });

    CSS
    @charset "utf-8";
    body {
      background: #fff;
      padding: 20px;
      font-family: Segoe UI Symbol;
      color: #000;
    }
    
    .filter-control li {
      list-style-type: none;
    }
    .filter-control li:not(.checked):before {
      content: '☐';
    }
    .filter-control li.checked:before {
      content: '☑';
    }
    
    .filteredblock > div {
      color: #fff;
    }
    
    .filteredblock.a.b.c > div,
    .filteredblock.a-Chicago > .a-Chicago,
    .filteredblock.a-Houston > .a-Houston,
    .filteredblock.a-Dallas > .a-Dallas,
    .filteredblock.b-Chicago > .b-Chicago,
    .filteredblock.b-Houston > .b-Houston,
    .filteredblock.b-Dallas > .b-Dallas,
    .filteredblock.c-beer > .c-beer,
    .filteredblock.c-whiskey > .c-whiskey {
      color: #000;
    }
    
    .filteredblock:not(.a):not(.a-Chicago) > .a-Chicago,
    .filteredblock:not(.a):not(.a-Houston) > .a-Houston,
    .filteredblock:not(.a):not(.a-Dallas) > .a-Dallas,
    .filteredblock:not(.b):not(.b-Chicago) > .b-Chicago,
    .filteredblock:not(.b):not(.b-Houston) > .b-Houston,
    .filteredblock:not(.b):not(.b-Dallas) > .b-Dallas,
    .filteredblock:not(.c):not(.c-beer) > .c-beer,
    .filteredblock:not(.c):not(.c-whiskey) > .c-whiskey {
      color: #fff;
    }

    Если пунктов в фильтрах уж очень много, то поможет в создании правил CSS следующая JS-функция:
    var addCSS = function (selector, style) {
      var sheet = window.document.styleSheets[window.document.styleSheets.length - 1];
      sheet.addRule(selector, style);
    };

    С использованием функции addCSS это выглядит так:
    https://jsfiddle.net/b0t3876r/24/
    Ответ написан
    Комментировать
  • Как сделать фильтр по нескольким параметрам?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Чтобы различать фильтры, добавьте им атрибуты с именами.

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

    Клик по пункту в каком-либо фильтре - отмечаете его как активный (добавлением класса, например), получаете значения всех активных фильтров, обходите список и прячете те элементы, где есть несовпадения данных со значениями фильтров.

    https://jsfiddle.net/58mp1rax/
    Ответ написан
    Комментировать