• Как заполнить массив случайными числами с плавающей точкой?

    @MrTimon
    Как вариант может быть что-то такое

    function getUniqueArray($count_elements, $min=1, $max=10) {
        $numbers = array_map(function($item) use ($min, $max) {
            return rand($min*100,$max*100)/100+0.01;
        }, range(1, $count_elements));
        return $numbers;
    }
    Ответ написан
    Комментировать
  • Как перевернуть фото при загрузке с iphone?

    @MrTimon
    На сервере считываете имидж, проверяете его ориентацию, оборачиваете в ту которую нужно и сохраняете уже в правильном положении.
    $image = imagecreatefromstring(file_get_contents($_FILES['user_image']['tmp_name']));
            $exif = exif_read_data($_FILES['user_image']['tmp_name']);
            if(!empty($exif['Orientation'])) {
                switch($exif['Orientation']) {
                    case 8:
                        $image = imagerotate($image,90,0);
                        break;
                    case 3:
                        $image = imagerotate($image,180,0);
                        break;
                    case 6:
                        $image = imagerotate($image,-90,0);
                        break;
                }
            }
    
            $file = 'filename.jpeg';
            $uploadfile = $uploaddir . $file;
    
            imagejpeg($image,$uploadfile,90);
    //
            imagedestroy($image);


    Этот код перевернет имидж в верной ориентации. Только для роботы кода должно быть установлено exif расширение для пхп (в php.ini нужно раскоментовать строку extension=php_exif.dll, ну и нужно, конечно же, иметь этот самый php_exif.dll в папке с расширениями )
    Ответ написан
    Комментировать
  • Можно ли строить чертежи с помощью javascript-библиотек?

    @MrTimon
    Думаю Вам нужно смотреть в сторону canvas-а. Вот здесь статейка, может поможет. Также думаю есть уже написаны библиотеки для рисования на канвасе с помощью js.

    ну или есть еще возможность рисовать с помощью svg. Здесь нашел какие-то примеры с и-нета
    Ответ написан
    Комментировать
  • Как добавить новый блок после существуещего?

    @MrTimon
    var div = document.createElement('div');
    div.className = 'cl';


    Эти строчки нужно переместить в тело функции , что вызывается на клик. (в самом начале функции нужно поставить)
    Ответ написан
  • Не правильно отображается состояние чекбоксов, как исправить?

    @MrTimon
    Во-первых, я бы не рекомендовал использовать глобальную переменную `i`, так как вы используете далее `i` в цикле и т д. Это как бы не проблема, но немножко путает, ну и потом может вызвать проблемы .

    А если по сути, то у вас проблема в функции updateTasks. Вот как должна она выглядеть :

    function updateTasks() {
        $('#todo-list').find('li').remove();
        $(tasks).each(function(i,t) {
        		
            $('#todo-list').append('<li class="'+ t.status +'">\
                <div class="todo-task">\
                <input class="toggle" type="checkbox" data-id="'+ i +'" '+ (t.status == 'completed' ? ' checked ' : '' ) +'><label class="text">'+ t.title +'</label>\
                <button class="destroy" data-id="'+ i +'"></button>\
                </div>\
                </li>');
        });
       
        tasksCount();
    }


    остальное все в порядке. Должно заработать.
    Ответ написан
    1 комментарий
  • Как отправить в базу сразу несколько форм select option по нажатию на одну кнопку submit?

    @MrTimon
    Ну во первых Вам нужно поле id в таблице которое будет ключом и будет однозначно определять ученика.

    Потом, зачем Вы выводите форму для каждого селекта отдельно. Выведите начало формы перед выводом таблицы а конец после кнопки сабмит. А для селестов определите name с айдишкамы школьников (choose_caretaker[$id]).

    тогда после сабмита на сервере в переменной $_REQUEST['choose_caretaker'] вы получите массив где ключом будет id ученика, а значение будет значение выбраного Caretaker
    Ответ написан
    1 комментарий
  • В чем ошибка зарегистрации скрипта в wp и как передать ему переменные с php?

    @MrTimon
    В этом месте
    wp_localize_script( 'img_import', 'MyAjax', array(
        'ajaxurl' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('myajax-nonce'),
        'pluginsUrl' => plugins_url()
    ) );

    Попробуйте первый параметр заменить на название скрипта перед которым переменные должны подгрузиться, тоисть img_import.js а не img_import . Получиться как то так
    wp_localize_script( 'img_import.js', 'MyAjax', array(
        'ajaxurl' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('myajax-nonce'),
        'pluginsUrl' => plugins_url()
    ) );
    Ответ написан
    4 комментария
  • Как сделать попап из отдельной html-страницы? без айфрейма?

    @MrTimon
    Есть куча плагинов для попапа. Погуглить непробовал

    Как по мне fancyBox норм, только он достаточно большой, зато у него куча возможностей. Все зависит от функционала который должен быть.
    Ответ написан
  • Не могу понять простой js. Пните в нужном направлении?

    @MrTimon
    Во-первых indexOf возвращает число - позицию первого вхождение (тоесть может быть и 0 если первый элемент) или -1 ели ничего не найдет, тоесть неверно его результат сравнивать с true. Во-вторых вы верно говорите что нужно обратиться к элементу массива, а вы ищете во всем массиве. Ну и еще вы вводите буквы через запятую то здесь не понятно как должно быть вывести все слова в которых есть хотя бы одна из введенный букв или слова в которых должны быть все введенные буквы. Если считать что вводиться только одна буква и переделать ваш пример то получается что-то такое

    var libraryLetter = ["book", "car", "bank", "near", "between", "map", "dog"];
            var userLetter = prompt("Укажите букву");
    
            for (var i = 0; i < libraryLetter.length; i++) {            
                if(libraryLetter[i].indexOf(userLetter) > -1){
                        ????
                   }else {
                           console.log("Совпадений не найдено");
                            }
            };


    Можно так же заюзать filter ф-цию . Получиться так

    var libraryLetter = ["book", "car", "bank", "near", "between", "map", "dog"];
            var userLetter = prompt("Укажите букву");
    
            var filteredwords =  libraryLetter.filter(function(value) {
                      return value.indexOf(userLetter) > -1
            }) 
          
                if(filteredwords.length ){
                        ????
                   }else {
                           console.log("Совпадений не найдено");
                  };
    Ответ написан
    Комментировать
  • Как сравнить даты?

    @MrTimon
    Я бы посоветовал переделать формат даты на Y-m-d и тогда переводить в метку времени unix. Тогда получиться так:

    list($d,$m,$y) = explode('.', $arResult['DISPLAY_ACTIVE_FROM']);
    $dateElement = strtotime(implode('-', array('20'.$y,$m,$d)) );
    $dateNow = strtotime('now');
    if($dateElement < $dateNow) echo "yes";


    Должно сработать. Только там обратите внимание на год. я поставил 20 перед $y там соответственно должно быть 19 если дата прошлого века.
    Ответ написан
  • Как написать правильно и кратко RegExp?

    @MrTimon
    ([^\(]+)+(\(.+\))?\s(.+)
    Ответ написан
    Комментировать
  • Добавить класс во время изменеие?

    @MrTimon
    Измени код на следующий
    $('.list_product input').change(function(){
      $(this).closest('.list_product').addClass('fixed_blok');
    });
    Ответ написан
    Комментировать
  • Вывод данных на лету?

    @MrTimon
    Ну во-первых инпуты которые вы указали на самом деле чекбоксы ) Тогда получаеться как то так

    $("#double-fields1").on("change", function(){
       $("#double-fields2").prop('checked',$(this).prop('checked'));
       $("#double-fields3").prop('checked',$(this).prop('checked'));
    });


    Ну а ели вам все же нужно в текстовые поля вводить то как то так

    $("#double-fields1").on("keyup", function(){
       $("#double-fields2").val($(this).val());
       $("#double-fields3").val($(this).val());
    });
    Ответ написан
    Комментировать
  • Как задать имя колонки таблицы как значение колонки другой таблицы?

    @MrTimon
    Ну якщо у вас тільки 2 поля (чи не набагато більше), то ви можете використати IF чи CASE функції тобто якось так

    UPDATE A JOIN B ON A.id=B.id SET A.one = IF(B.name = 'one',1,0), A.two= IF(B.name = 'two',1,0)


    Якщо ж їх більше або ж ви не знаєте самих назв полів, то тут потрібно придумати щось інше )

    Надіюсь вам це допоможе
    Ответ написан
    6 комментариев
  • Действие во время анимации jQuery?

    @MrTimon
    Ввможете задейсвовать css анимацию по увеличению/уменьшению размеров скорость которой будет соответствовать стокорости полной js анимации. Здесь Пример анимации. обратите внимание на строку

    transition: width 1s linear, height 1s linear;

    там в секундах указано скорость анимации. А в js Я просто изменяю класс. Тоесть вам не нужно делать это в цикле. Вы просто изменяете классы для элементов и запускаете анимацию карусели. Должно все получиться в лучшем виде.

    Есть и другой более сложный вариант. В js ф-ции animate есть параметр step это ф-ция отвечающая за один крок анимации. Вот пример з дока:

    $( "li" ).animate({
      opacity: .5,
      height: "50%"
    }, {
      step: function( now, fx ) {
        var data = fx.elem.id + " " + fx.prop + ": " + now;
        $( "body" ).append( "<div>" + data + "</div>" );
      }
    });


    Тоесть Вы можете прописать в здесь все изменения, которые должны происходить с Вашем блоком. Ну там сдвиг влево/вправо ну и увлечения/уменьшения некоторых элементов. И в конце анимации поменять классы.
    Ответ написан
  • Как исправить скрипт добавления/удаления класса по клику?

    @MrTimon
    Потому что на момент когда Вы объявляете скрипт у вас нету классов .toggle поэтому ничего на них и не вешается.
    Предлагаю эту строчку

    $('#list .toggle').on('change', function() {

    заменить на следующею

    $('#list').on('change', '.toggle', function() {

    P.S. Так же заметил лишний дефис в этой строчке
    $('#-list li').removeClass('checked');
    Ответ написан
    3 комментария
  • Как правильно составить SQL запрос в PHP?

    @MrTimon
    Попробуй заменить запрос на этот. Не проверял, но должно помочь.
    SELECT 
        goods.name, SUM(orders.price) as sum
    FROM
        orders
    LEFT JOIN 
        goods
    ON
        goods.id = orders.item_id
    WHERE
        orders.paid = 1
    GROUP BY
        orders.item_id
    Ответ написан
  • Взять value из input, сравнить и вывести?

    @MrTimon
    Учитывая Ваш коммент
    Допустим при вводе слова "service" и нажатии ентер без перезагрузки появляется блок service


    Есть 2 варианта.
    1. Вивести все блоки сразу же но только скрытыми (display: none;) и тогда выводить только тот который нужно. JS будет примерно такой

    $(document).ready(function() {
        var $input = $('#input_id'); // здесь ID инпута нужно прописать вместо input_id
        
    
        $input.keypress(function(e) {
            if(e.which == 13) {
                var block = $(this).val();
                $('.block').hide();  // прячем все блоки. З,Ы. все блоки должны иметь класс .block
    
                if ( $('.block#'+block).length > 0) {
                    $('.block#'+block).show();
                } else {
                    $('.block#error').show(); // показываем блок з id='error';
                }
    
            }
        });
    });


    Получиться Что когда ввы введете в инпут айдишку какого-то блока то он и покажется а если такого блока не будет, то покажет блок с ошибкой (который тоже должен быть).

    ну или если вам нужно сравнивать с списком возможных блоков то можно объявить массив с айдишками этих блоков.

    var  existing_blocks = ['block1', 'block2', ..., 'blockN'];


    и потом последнее условие изменить на следующее

    if ( existing_blocks.indexOf(block)  != -1) {
         $('.block#'+block).show();
    } else {
         $('.block#error').show(); // показываем блок з id='error';
    }


    2-ой вариант это после нажатия ентера посылать аякс запрос с введенным значением на сервере рендерить блок и возвращать готовый хтмл, который и выводить в результат.
    Ответ написан
    1 комментарий
  • Как правильно передать значение переменной в ajax запрос?

    @MrTimon
    Ну во-первых не нужно в ф-цию sendGet ставить обработчик $(".btn-selector").click. Выберете или одно или другое. Я бы советовал убрать ынлайн ф-цию sendGet. А скрипт перепесать следующим образом

    $(document).ready(function() {
    
            $(".btn-selector").click(function () {
                    var imgsrc = $(this).attr('value');
    
                    $.ajax({
                        type: 'get',
                        url: 'ajax.php',
                        data: {
                            'data_item': imgsrc 
                        },
                        dataType : 'html',
                        success: function (data) {
                            $('#result').html(data);
                        }
                    });
                });
    
    });


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

    @MrTimon
    Вы должны event передавать первым параметром в ф-цию move (а Вы как мне кажется передаете туда 0). В хроме работает так как e заменяется на window.event, тогда как в FF такого значение нету (Пример который вы предоставили в ссылке тоже выдает ошибку TypeError: e is undefined при наведении).

    Посмотрел код примера. Предлагаю так ф-цию over тоже добавить параметр e и потом его передавать в ф-цию move. как-то так:
    function over(e,tip)	//функция при наведении
    	{  
    		//обрабатываем массив с данными
    		data_color = '';
    		data = maparray[tip-1];
    		data = data.split(';');
    		name = 	data[0]
    		square = data[1]
    		desc = data[2]
    		//добавляем тултип
    		$('').appendTo('body').html(name+' '+square+'кв.м.'+desc);
    		move(e,0,0);
    	}


    потом удалить все инлайн вызовы ф-ции over и дописать следующий код в документ реди:

    $(document).ready(function(){
    		$('area').mouseover(function(e) {
                          over(e,$(this).index()+1);
                    });
    	});


    не проверял но должно работать нормально.
    Ответ написан
    1 комментарий