Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (8)

Лучшие ответы пользователя

Все ответы (12)
  • Как правильно копировать ячейки?

    @dexes56
    Back-end engineer
    https://jsfiddle.net/4aegcurp/

    Если вам нужно, чтобы значения ячеек менялись сразу же при выделении клеток, то вот код:
    $(document).ready(function () {
        var table = $('table');
        var cells = table.find('td');
        var firstCorner, secondCorner, val;
    
        function getCellIndex(cell) {
            return {
                x: $(cell).index(),
                y: $(cell).parent().index()
            };
        }
    
        function getRangeFromCorners(firstCorner, secondCorner, axis) {
            var from, to;
    
            if (firstCorner[axis] < secondCorner[axis]) {
                from = firstCorner[axis];
                to = secondCorner[axis];
            }
            else {
                from = secondCorner[axis];
                to = firstCorner[axis];
            }
    
            to = ':lt(' + ( to - from + 1 ) + ')';
    
            from = from > 0
                ? ':gt(' + ( from - 1 ) + ')'
                : '';
    
            return from + to;
        }
    
        function onSelectEnd() {
            cells.off('mouseover.selectRange');
            table.find('.selected')
                .removeClass('selected')
                .html(val);
        }
    
        cells.on('mousedown', function () {
            firstCorner = getCellIndex(this);
            secondCorner = getCellIndex(this);
            val = $(this).text();
    
            cells.each(function () {
                $(this).data('oldval', $(this).html());
            });
    
            cells.on('mouseover.selectRange', function () {
                secondCorner = getCellIndex(this);
    
                var rangeX = getRangeFromCorners(firstCorner, secondCorner, 'x');
                var rangeY = getRangeFromCorners(firstCorner, secondCorner, 'y');
    
                cells.filter('.selected').each(function () {
                    $(this).removeClass('selected')
                        .html($(this).data('oldval'));
                });
    
                table.find('tr' + rangeY).each(function () {
                    $(this).find('td' + rangeX)
                        .addClass('selected')
                        .html(val);
                });
            });
    
            $('body')
                .on('mouseup.removeCellListener', function () {
                    $(this).off('mouseup.removeCellListener');
                    onSelectEnd();
                })
                .on('mouseleave.removeCellListener', function () {
                    $(this).off('mouseleave.removeCellListener');
                    onSelectEnd();
                });
        });
    });
    Ответ написан
    Комментировать
  • Как создать массив значений chekbox и отправить его по ajax?

    @dexes56
    Back-end engineer
    Всё не так страшно, как вам кажется.
    В данном примере всё корректно отправится на сервер по нажатию на "Отправить".
    Так же для примера прикладываю как я бы отправлял форму на сервер через AJAX.

    <form method="POST" action="/" id="form">
        <label><input type="checkbox" name="svois[]" class="svois" value="7"> Высота</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="8"> Количество</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="9"> Назначение</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="10"> Способ изготовления, метод производства</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="11"> Диаметр</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="12"> Вид обработки</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="13"> Тип покрытия</label><br/>
        <label><input type="checkbox" name="svois[]" class="svois" value="14"> Форма</label><br/>
        <input type="submit" value="Отправить">
    </form>
    
    <script>
    $(function(){
        var form = $('#form');
        form.on('submit', function(e){        
            e.preventDefault();
            
            $.ajax({
                type: form.attr('method'),
                url: form.attr('action'),
                data: form.serialize(),
                success: function(result)
                {
                    console.log( result );
                }
            });
        });
    });
    </script>
    Ответ написан
    Комментировать
  • Как реализовать картинку и 4 ответа?

    @dexes56
    Back-end engineer
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    
    <img src="#" id="img_load">
    
    <a href="#" name="button1" data-num="1" class="button">кнопка</a>
    <a href="#" name="button2" data-num="2" class="button">кнопка</a>
    <a href="#" name="button3" data-num="3" class="button">кнопка</a>
    <a href="#" name="button4" data-num="4" class="button">кнопка</a>
    
    <div class="results"></div>
    
    <script language="javascript" type="text/javascript">
        $('.button').on('click', function(e){
            e.preventDefault();
    
            var img = $('#img_load');
            var current = $(this);
            var buttons = $('.button');
    
            $.ajax({
                type: 'POST',
                url: 'setings.php',
                data: 'btn=' + current.data('num'),
                success: function(data){
                    $('.results').html(data);
    
                    buttons.each(function(){
                        $(this).html( 'Кнопка ' + $(this).data('num') );
                    });
    
                    current.html( 'Кликнули сюда' );
    
                    img.attr('src', 'image url');
                }
            });
    
        });
    </script>
    Ответ написан
    Комментировать
  • Какая есть минималистическая библиотека для Canvas?

    @dexes56
    Back-end engineer
    https://www.createjs.com/easeljs
    Лёгкий, даёт как раз то, что Вы описали. Самые базовые вещи, которых не хватает в native.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)