Ответы пользователя по тегу JavaScript
  • Как при помощи JQ или JS принудительно вызвать клик на элементе с зажатым Shift?

    orlov0562
    @orlov0562
    I'm cool!
    www.spookandpuff.com/examples/clickSimulation.html

    function simulatedClick(target, options) {
    
      var event = target.ownerDocument.createEvent('MouseEvents'),
          options = options || {},
          opts = { // These are the default values, set up for un-modified left clicks
            type: 'click',
            canBubble: true,
            cancelable: true,
            view: target.ownerDocument.defaultView,
            detail: 1,
            screenX: 0, //The coordinates within the entire page
            screenY: 0,
            clientX: 0, //The coordinates within the viewport
            clientY: 0,
            ctrlKey: false,
            altKey: false,
            shiftKey: false,
            metaKey: false, //I *think* 'meta' is 'Cmd/Apple' on Mac, and 'Windows key' on Win. Not sure, though!
            button: 0, //0 = left, 1 = middle, 2 = right
            relatedTarget: null,
          };
    
      //Merge the options with the defaults
      for (var key in options) {
        if (options.hasOwnProperty(key)) {
          opts[key] = options[key];
        }
      }
    
      //Pass in the options
      event.initMouseEvent(
          opts.type,
          opts.canBubble,
          opts.cancelable,
          opts.view,
          opts.detail,
          opts.screenX,
          opts.screenY,
          opts.clientX,
          opts.clientY,
          opts.ctrlKey,
          opts.altKey,
          opts.shiftKey,
          opts.metaKey,
          opts.button,
          opts.relatedTarget
      );
    
      //Fire the event
      target.dispatchEvent(event);
    }
    Ответ написан
    Комментировать
  • Java Front-end.Хочется чего то большего.Поможете добрым словом?

    orlov0562
    @orlov0562
    I'm cool!
    Гугли: Java Web Development. Так же можешь глянуть в сторону: Asp.Net

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

    orlov0562
    @orlov0562
    I'm cool!
    1) генерь сам данные
    2) бери реальные, самые популярный источник - котировки. Например: yahoo fiunance
    Ответ написан
    Комментировать
  • Как создать пересчет бронирования заказа?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    1) для js есть реализация md5: javascript.ru/php/md5

    2)
    добавь id полю куда вернется результат
    <input type="" name="sign" id="sign" value="" />

    теперь переделай ajax так
    $.ajax({
          type: 'POST',
          url: 'response.php?action=sample2',
          data: {
             i3: $('#i3').val() // передаем переменную i3 с значением из поля ввода с id=i3
          },
          success: function(data){
            $('#sign').val(data);
          }
        });
    Ответ написан
  • Как делаются comet на сервере apache?

    orlov0562
    @orlov0562
    I'm cool!
    не надо ниче никуда переносить

    ставишь комет сервер на порт отличный от http (80) и наслаждаешься

    для большой красоты, можешь комет сервер поставить на localhost, а из веб-сервера проксировать на него запросы (гугли websocket apache2 mod proxy)
    Ответ написан
  • Как проверить, пересекаются ли треугольники?

    orlov0562
    @orlov0562
    I'm cool!
    забей на треугольники, проверь пересекаются ли прямые (из которых состоят треугольники). Если хотя бы одна прямая имеет пересечение, значит и фигуры пересекаются
    Ответ написан
    1 комментарий
  • При выборе одного SELECT другим передать value=0?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    не совсем понятно, что тебе надо сделать

    если у тебя два select с name_a и name_b и при установке name_b тебе надо в name_a установить 0. И делать это на php, тогда самый простой вариант такой:
    if (!empty($_POST['name_b'])) {
       $_POST['name_a'] = 0;
    } elseif (!empty($_POST['name_a'])) {
       $_POST['name_b'] = 0;
    }
    Ответ написан
    7 комментариев
  • Как организовать реал-тайм оповещения в браузере?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    В сторону web-push notification
    Начать можно отсюда: https://support.mozilla.org/ru/kb/veb-push-uvedoml...

    P.S. Ну, и старый-добрый XMLHttpRequest никто не отменял
    Ответ написан
  • Ни как не пойму, как работает цикл while?

    orlov0562
    @orlov0562
    I'm cool!
    циклы - это просто:
    - смотри у цикла есть тело, то что отмечается фигурными скобками
    - и есть некоторое условие, у тебя это count <= 10

    так вот интерпретатор делает следующие:
    - доходит до while ( count <= 10) и проверяет указанное условие
    - т.к. ты ранее задал count = 1, условие "выполняется", ведь 1 <= 10
    - раз условие выполняется, он выполняет тело цикла, т.е. то что в фигурных скобках
    - в фигурных скобках, ты делаешь count +1 , т.е. он теперь равен не 1 а 2
    - после выполнения тела цикла, он опять проверяет условие ( count <= 10), т.е. 2 <= 10
    - оно опять выполняется, поэтому тело цикла выполняется опять и count становится 3
    ...
    - в какой-то момент, count станет = 11, условие ( count <= 10) не выполнится, а соответственно не будет выполнятся тело цикла
    - теперь интерпретатор пойдет дальше
    Ответ написан
  • Как задать максимальное время ожидания ответа от сервера?

    orlov0562
    @orlov0562
    I'm cool!
    У fetch нет метода остановки / отмены запроса, так что никак. Используй старый добрый XMLHttpRequest у него есть метод abort() который можно вызвать через установку таймера setTimeout. А в случае успеха таймер попросту удаляется и abort не срабатывает.
    Ответ написан
    Комментировать
  • Как сделать тему в письме?

    orlov0562
    @orlov0562
    I'm cool!
    у тебя в скрипте есть переменная $subject - это и есть тема письма

    не совсем понятно что ты хочешь:
    1) если id формы - значит надо написать:
    добавить в форму скрытое поле "id", а в скрипте
    $subject = "ID: ".( isset($_POST['id']) ? $_POST['id'] : 'n/a' );
    или добавить id в передаваемые данные в скрипте, т.е. тут:
    var formNm = $('#' + formID);
    formNm.id = '132';

    2) если хочешь чтобы была текстовая тема, значит надо добавить в форму < input type="text" name="subject" >
    и в скрипт $subject = isset($_POST['subject']) ? $_POST['subject'] : '';
    Ответ написан
    Комментировать
  • Создание карты html, css?

    orlov0562
    @orlov0562
    I'm cool!
    Вот описание тэга: htmlbook.ru/html/map

    Вкратце делаешь картинку, поверх ложишь map, отмечаешь границы области координатами внутри map с помощью area, у каждой area делаешь свою ссылку.

    Посмотри исходник страницы, там все просто

    P.S. Координаты можно быстро "нарезать" с помощью онлайн сервисов, например: imagemap-generator.dariodomi.de или других, которые можно найти по запросу "html map generator"
    Ответ написан
    Комментировать
  • Как сделать проверку отправляемых данных формы при помощи ajax?

    orlov0562
    @orlov0562
    I'm cool!
    давай по-порядку

    >> каптча
    1) выводишь каптчу и поле для ввода каптчи
    2) выводишь тригер проверки каптчи, чаще всего это какая-нибудь кнопка (например "Скачать трек")
    3) в момент нажатия кнопки (или исполнения тригера), проверяешь каптчу. Тригером может быть что угодно, например event "blur", который срабатывает, когда теряется фокус с поля ввода каптчи..
    4) если плохой результат показываешь ошибку
    5) если все ок, значит делаешь действие

    >> как мне сделать так, чтобы когда я нажал на "submit" формы, произошел запрос к серверу и в случае верной капчи отдал на скачивание файл а при ошибке вывел ошибку, но текущей странице, без обновления.

    1) делаешь кнопку (можно без формы), пусть это будет "Скачать"

    2) на кнопку вешаешь функцию:
    $('#btn').click(function(){
    ....
    // проверка каптчи
    // показ ошибки или скачивание файла
    ....
    });


    3) при нажатии на кнопку проверяешь каптчу
    4) если ошибка, показываешь сообщение, обновляешь каптчу и выходишь из функции:
    $('#btn').click(function(){
    ....
    if (!valid_captcha()) return false;
    // показ ошибки или скачивание файла
    ....
    });
    
    function valid_captcha(){
    var ret = false;
    // проверка каптчи
    return ret;
    }


    5) делаешь ajax запрос к скрипту на php, например к file.php , передаешь параметры какие-надо
    скрипт возвращает тебе путь к файлу на который ты переходишь с помощью метода:

    при отдаче файла, посылаешь заголовоки вида:
    Content-Type application/octet-stream
    чтобы форсировать вызов диалога "Сохранить как"
    сделатьэто можно как на стороне php так и на стороне веб-сервера, если редирект будет напрямую на mp3 файл

    >> Как мне запретить нажимать submit, если не введена капча, если капча была уже введена и кто-то нажимает снова на submit.

    P.S. Если все таки решил делать в форме, то тогда в случае ошибок ты можешь остановить выполнение вернув false в submit event-е, т.е.:

    <form action="http://google.com">
    <input type="submit">
    </form>
    
    <script>
    $('form').first().submit(function(){
        if (!confirm('Submit form?')) return false;
    });
    </script>
    Ответ написан
    Комментировать
  • Как в моём случае настроить masonry?

    orlov0562
    @orlov0562
    I'm cool!
    У тебя masonry запускается до того, как загрузились картинки в container + нет ограничения на размер картинок и контейнер.

    Вот как-то так: codepen.io/anon/pen/QKXQBQ
    Ответ написан
  • Как исправить скрипт?

    orlov0562
    @orlov0562
    I'm cool!
    вместо slideToggle использовать slideUp и slideDown в зависимости от текущего состояния, типа того:
    var el = $('#mainmenu .parent .nav-child');
    if (el.is(':visible')) { $(el).slideDown(); } else { $(el).slideUp(); }
    Ответ написан
    Комментировать
  • Всплывающий блок при клике на input не хочет сварачиваться назад, что делать?

    orlov0562
    @orlov0562
    I'm cool!
    выложи на jsfiddle, так проще тебе помочь будет

    на первый взгляд, тебе надо добавить ко всем появляющимся объектам единый класс, и потом скрывать его перед показом нового, т.е. что-то типа:
    <div class="panel" id="panel-1"></div>
      <div class="panel" id="panel-2"></div>


    $('#btn-panel-1').click(function(){
        $('.panel:visible').hide();
        $('#panel-1').show();
      });
    
      $('#btn-panel-2').click(function(){
        $('.panel:visible').hide();
        $('#panel-2').show();
      });


    идея думаю понятна
    Ответ написан
    Комментировать
  • При нажатии на кнопку поменять div в котором есть форма?

    orlov0562
    @orlov0562
    I'm cool!
    Разобью тебе по шагам
    - навешиваешь на кнопку Зарегистрировать onlclik событие
    $('#reg-btn').click(function(){ ... });
    - в теле функции делаешь ajax запрос к php скрипту
    $.ajax({
                url: '/register.php',
                type: 'post',
                dataType: 'json',
                success: function (data) {
                    $('#reg-form').hide();
                    $('#message').html(data.msg).show();
                },
                data:[
                    name: $('#reg-form-name').val(),
                    email: $('#reg-form-email').val(),
                    phone: $('#reg-form-phone').val()
                ]
            });


    теперь в register.php пишешь добавление в базу, создание аккаунта, и формирование ответа, типа того:
    .....
    $answer = 'Добро пожаловать ... ';
    echo json_encode(['msg'->$answer]);
    exit;


    - вот и всё

    Разумеется тебе надо добавить указанные id (reg-btn и т.д.) к полям формы и подготовить скрытый контейнер для вывода сообщения.

    Простым языком:
    - Готовишь два блока: блок формы и блок ответа. блок ответа скрываешь через style="display:hidden"
    - При нажатии на кнопку в форме, отправляешь ajax запрос с данными скрипту на php
    - Скрипт регистрирует пользователя и отправляет в качестве ответа json данные
    - Когда Ajax запрос отработает и получит ответ от php скрипта, он скрывает окно формы ( jquery функция hide() ), выводит полученное сообщение во второе окно и отображает его ( jquery функция show() ).
    Ответ написан
    Комментировать
  • Как по вывести двумерный массив из PHP в JS массив по отдельности?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    foreach($cities as $k=>$current_city){
        echo ($k?',':'')."'$current_city[0]'";
      }


    или второй вариант:
    $cities = [
            ['1', 'Moscow'],
            ['2', 'Kazan'],
        ];
    
        echo "var cities_id = ['".implode("','", array_column($cities, 0))."'];";
        echo '<br>';
        echo "var cities_name = ['".implode("','", array_column($cities, 1))."'];";
    Ответ написан
    Комментировать
  • Как выбрать первый и последний тег из текста?

    orlov0562
    @orlov0562
    I'm cool!
    var myRe = /<([a-z]+)>(.+)<\/([a-z]+)>/ig;
    var myArray = myRe.exec("<div><tags>cdbB<br>dbsbz</tags></div>");


    Тут есть подробное объяснение: https://learn.javascript.ru/regexp-greedy-and-lazy
    Ответ написан
  • Как передать кириллицу в location.href?

    orlov0562
    @orlov0562
    I'm cool!
    Добавь: encodeURIComponent(city)
    и проверь чтоб на проде была кодировка utf-8
    Ответ написан