Ответы пользователя по тегу JavaScript
  • Как перевести обычную дату в unix timestamp?

    @Valera221
    Делаю сайты
    Вот уникальная функция для конвертирования обычной даты в юникс
    function ToUnix(dateArg = {
    	str:false,
    	Y:"1970",
    	m:"01",
    	d:"01",
    	h:"01",
    	i:"00",
    	s:"00"
    }){
    	Object.entries(dateArg).forEach(([k,v])=>{
    		if (Number.isInteger(v) && v < 10) {dateArg[k] = "0"+v}
    		if (!Number.isInteger(v) && v.length == 1) {dateArg[k] = "0"+v}
    	})
    	let dateStr = `${dateArg.Y}-${dateArg.m}-${dateArg.d}T${dateArg.h}:${dateArg.i}:${dateArg.s}`;
    	if (dateArg.str) dateStr = dateArg.str;
    	return +new Date(dateStr);
    }


    Пример использования:
    asaToUnix({Y:1980,m:10,d:01,h:02,i:00,s:08}); //339210008
    asaToUnix({str:"1981-01-02T10:10:05"}); // 347274605
    Ответ написан
    Комментировать
  • Как отобразить все реквесты через джаваскрипт?

    @Valera221
    Делаю сайты
    Используй библиотеку jQuery - ajax и конкретно тебя должно интересовать https://api.jquery.com/jquery.ajax/#:~:text=Save%2....
    $.ajax({
      method: "POST",
      url: "some.php",
      data: { name: "John", location: "Boston" }
    })
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
    });

    Делаешь файлик .php например, он обрабатывает пост данные и отправляет их в базу данных,
    в url даешь на него ссылку.
    в файле напиши php

    $name = $_POST["name"];
    $location = $_POST["location"];
    var_dump($name, $location);


    и в переменной msg ты увидишь эти переменные

    Либо вот такой запрос на чистом JS

    fetch ("some.php",{
    body: "name=" + encodeURIComponent("John") + "&location=" + encodeURIComponent("Boston")
    cache: "default",
    headers: {'Content-type': 'application/x-www-form-urlencoded; charset=utf-8'},
    method: "POST",
    mode: "cors"
    }).then( (response) => {
      if (response.status !== 200) {           
        return Promise.reject();
      }
      return response["text"]();
    }).then(msg=>{
    alert( "Data Saved: " + msg );
    })
    Ответ написан
    2 комментария
  • Почему сорт не видит первый элемент массива?

    @Valera221
    Делаю сайты
    Это происходит, потому что sort требует два аргумента, это нужно для сравнения этих же аргументов, если впишешь вот так, то появиться 1 2 и 3 )
    arr = [1,2,3];
    arr.sort(function(a,b) {
    console.log(a);
    console.log(b);
    })
    Ну я также могу посоветовать
    arr.forEach( function(element, index) {
    // statements
    });
    или
    for (let [key,v] of Object.entries(arr)) {
    console.log(key)
    console.log(v)
    }
    Ответ написан
    8 комментариев
  • Как сделать управление объектом на сайте с клавиатуры?

    @Valera221
    Делаю сайты
    Код слишком большой, по этому я упрощу только лишь и сделаю событие нажатия кнопки на клаве тоглько для

    для удобства сделаю квадратик (советую проверить и изучить этот скрипт в отдельном файле)
    <style>
    		#qwerty {
    			position: relative;
    			width: 500px;
    			height: 500px;
    			background: black;
    		}
    	</style>
    	<div id="qwerty"></div>


    <script>
    	
    let qwe = document.querySelector("#qwerty");
    Тут значения на сколько пикселей в верх
    let up = 20;
    let b_up = false;
    let left = 20;
    let b_l = false;
    
    эта функция двигает объект в верх
    function go_u () {
    	console.log("okU")
    	let go = qwe.offsetTop += up;
    	qwe.style.top = go + "px";
    }
    эта функция двигает объект в лево
    function go_l () {
    	console.log("okL")
    	let go = qwe.offsetLeft += left;
    	qwe.style.left = go + "px";
    }
    
    И так создадим событие нажатие клавиатуры во всем документе
    document.addEventListener("keydown",function(e) {
    	console.log(e);
    если нажал W то запускается функция движения в верх и также в лево
    if (b_up) {
    go_u();
    }else {
    	if (e.key == "w") {
    		b_up = true;
    		go_u();
    		// console.log("ok");
    	}
    }
    
    if (b_l) {
    go_l();
    }else {
    	if (e.key == "d") {
    		b_l = true;
    		go_l();
    		// console.log("ok");
    	}
    }
    
    })
    
    
    document.addEventListener("keyup",function(e) {
    когда ты отжал кнопку W то мы навсякий случай делаем false, чтобы объект больше не двигался
    		console.log(e);
    	if (e.key == "w") {
    		b_up = false;
    		console.log("nopeW");
    	}
    
    	if (e.key == "d") {
    		b_l = false;
    		console.log("nopeD");
    	}
    
    })
    
    </script>
    Ответ написан
    Комментировать
  • Как узнать какой именно пользователь находится на странице?

    @Valera221
    Делаю сайты
    Попробуй использовать базу данных
    $my_id = когда человек регестрируется ты даешь ему айди
    Например: $my_id = $_SESSION['id'];
    или
    $my_id = $_COOKIE['id'];

    делаешь таблицу в sql с названием online
    в online делаешь таблицы ip, user, ip

    if (isset($my_id)) {$user_online = $my_name;}
    else {$user_online="guest";}
    
    if ($user_online == 'guest') {$Online = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `ip` FROM `online` WHERE `ip` = '$_SERVER[REMOTE_ADDR]'"));}
    
    else {$Online = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `user` FROM `online` WHERE `user` = '$user_online'"));}
    
    
    if ($Online['ip']) {mysqli_query($mysqli, "UPDATE `online` SET `time` = NOW() WHERE `ip` = '$_SERVER[REMOTE_ADDR]'");}
    else if ($Online['user'] && $Online['user'] != 'guest') {mysqli_query($mysqli, "UPDATE `online` SET `time` = NOW() WHERE `user` = '$user_online'");}
    else {if($user_online)mysqli_query($mysqli, "INSERT INTO `online` SET `ip` = '$_SERVER[REMOTE_ADDR]', `user` = '$user_online', `time` = NOW()");}

    Все подробно рассказано в источнике
    Источник: https://www.youtube.com/watch?v=S588D8yR_qI&list=P...
    Ответ написан
    Комментировать
  • Скролл вниз при наведении на блок?

    @Valera221
    Делаю сайты
    div на который наводишь
    parent это родитель
    mouseover это ивент, когда ты наводишь мышку на ребенка
    let parent = document.querySelector(".класс родителя");
    let div = document.querySelector(".класс ребенка");
    div.addEventListener("mouseover",function(){
      parent.scrollTop = div.scrollHeight;
      
    });


    Суть кода в том, что ты скролл родителя прокручиваешь на уровень ребенка
    Ответ написан
  • Как сделать просмотр фотографий при наведении?

    @Valera221
    Делаю сайты
    Реализуй на js, используй события и евенты

    let div = какой-то элемент
    // вот источник https://learn.javascript.ru/mouse-clicks;
    div.addEventListener('click',ha_key);
    
    // или навестись мышкой div.addEventListener('mouseover',ha_key);
    
    function ha_key() {
    и тут ты работаешь над другим дивом,  создаешь отдельный див
    который будет поверх всего, типа за главный и когда ты кликаешь на первый див,
    показывается уже слайдер крупным планом, который должен быть заранее приготовлен
    со стилем display:none
    // вот источник как менять стили элементам https://learn.javascript.ru/styles-and-classes
    }
    Ответ написан
    Комментировать
  • Передать и вызвать функцию как параметр в JS?

    @Valera221
    Делаю сайты
    Можешь попробовать так
    function test(fn1, fn2){
    if(fn1){ 
    console.log(blabla);
    }
    else if (fn2){
    console.log (fn2)
    }
    }
    Ответ написан
    Комментировать
  • Как сделать замену символа внутри ввода select2?

    @Valera221
    Делаю сайты
    <input type="text" list="numb" id="inp">
    <datalist id="numb" multiple>
      <option value="0" class="ok0">0</option>
    </datalist>


    <script>
    
    
    let inp = document.querySelector("#inp");
    inp.addEventListener('keyup',ha_key);
    function ha_key (e){
    // Первый вариант
    	if (e.code == "Period") {
    		let ok = inp.value.replace(".", ',');
      		inp.value = ok;
    	}
    // Второй вариант ))
      	if (inp.value.split('.').length >= 2) {
      		console.log("hi " + inp.value);
      		let ok = inp.value.replace(".", ',');
      		inp.value = ok;
      	}
    }
    </script>
    Ответ написан
  • Можно ли учить JavaScript и Mysql одновременно?

    @Valera221
    Делаю сайты
    Я учил одновременно, и нормально так получалось, но конечно лучше распределить эти две темы
    Ответ написан
    Комментировать
  • Как сделать ajax корзину yii2?

    @Valera221
    Делаю сайты
    Делаешь отдельный файл в которым ты пишешь код для получения данных из базы данных или откуда-то.

    // Нужно чтобы записать в нее последние данные из html
    let last_data = "";
                      function show()
            {
                $.ajax({
                    url: 'файл где код для получения',
                    cache: false,
                    success: function(html){
                      //html это данные которые ты получил с файла, это может быть полноценная корзина
                      if (last_data != html){
                      div = html;
                      last_data = html;
                    }
                      //div это там где ты хочешь разместить данные из html
                    }
                });
            }
            $(document).ready(function(){
                show();
                setInterval('show()',1000); 
                // Интервал нужен чтобы постоянно повторять эту операцию
                // Чтобы каждый раз не обновлять, ты можешь сделать дополнительную переменную, в которую помещаешь html, и если что-то измениться в html, то только тогда div обновиться еще раз 
            });
    Ответ написан
    Комментировать
  • Как избавиться от множества if?

    @Valera221
    Делаю сайты
    Можно сократить с помощью циклов for, while и массивов. Но желательно видеть как выглядит твой код.
    Ответ написан
    Комментировать