• Почему не получается вытащить значение из AJAX во внешнюю область?

    Mr_Sergo
    @Mr_Sergo
    var testResult
    
    function ajax () {
    	return new Promise(resolve => {
        $.ajax({
          url: 'test.php',
          method: "POST", 
          data: { test: 'test', },
          success: data => resolve(data)
        })
      })
    }
    
    (async () => {
      testResult = await ajax ()
      console.log(testResult)
    })()

    но это извращение какое-то, лучше как вам подсказали выше - используйте fetch ()
    Ответ написан
    Комментировать
  • Я в упор не вижу не закрытой скобки?

    Mr_Sergo
    @Mr_Sergo
    <?
    $dir45 = md5($_FILES['file']);
    if (true == (file_exists('/filez/' + $dir45 + '/')))
    {//---------------------------------------------------------------------------------------------------------------------------------
        while (true == (file_exists('/filez/' + $dir45 + '/')))
        {
            $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
            function generate_string($input, $strength = 16)
            {
                $input_length = strlen($input);
                $random_string = '';
                for ($i = 0;$i < $strength;$i++)
                {
                    $random_character = $input[mt_rand(0, $input_length - 1) ];
                    $random_string .= $random_character;
                }
    
                return $random_string;
            }
    
            // Output: Jp8iVNhZXhUdSlPi1sMNF7hOfmEWYl2UIMO9YqA4faJmS52iXdtlA3YyCfSlAbLYzjr0mzCWWQ7M8AgqDn2aumHoamsUtjZNhBfU
            $dir45 = generate_string($permitted_chars, 7);
    
        }
        if (isset($_FILES))
        {//---------------------------------------------------------------------------------------------------------------------------------
    
            $allowedTypes = array(
                'image/jpeg',
                'image/png',
                'image/gif'
            );
            mkdir($dir45);
            $uploadDir = "filez/" + $dir45 + "/"; //Директория загрузки. Если она не существует, обработчик не сможет загрузить файлы и выдаст ошибку
            for ($i = 0;$i < count($_FILES['file']['name']);$i++)
            { //Перебираем загруженные файлы//---------------------------------------------------------------------------------------------------------------------------------
                $uploadFile[$i] = $uploadDir . basename($_FILES['file']['name'][$i]);
    
                $fileChecked[$i] = false;
    
                echo $_FILES['file']['name'][$i] . " | " . $_FILES['file']['type'][$i] . " — ";
    
                for ($j = 0;$j < count($allowedTypes);$j++)
                { //Проверяем на соответствие допустимым форматам
                    if ($_FILES['file']['type'][$i] == $allowedTypes[$j])
                    {
    
                        $fileChecked[$i] = true;
    
                        break;
    
                    }
    
                }
    
                if ($fileChecked[$i])
                { //Если формат допустим, перемещаем файл по указанному адресу
                    if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploadFile[$i]))
                    {
    
                        echo "Успешно загружен <br>";
    
                    }
                    else
                    {
    
                        echo "Ошибка " . $_FILES['file']['error'][$i] . "<br>";
    
                    }
                }
    ?><?
                $dir45 = md5($_FILES['file']);
                if (true == (file_exists('/filez/' + $dir45 + '/')))
                {//---------------------------------------------------------------------------------------------------------------------------------
                    while (true == (file_exists('/filez/' + $dir45 + '/')))
                    {
                        $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
                        function generate_string($input, $strength = 16)
                        {
                            $input_length = strlen($input);
                            $random_string = '';
                            for ($i = 0;$i < $strength;$i++)
                            {
                                $random_character = $input[mt_rand(0, $input_length - 1) ];
                                $random_string .= $random_character;
                            }
    
                            return $random_string;
                        }
    
                        // Output: Jp8iVNhZXhUdSlPi1sMNF7hOfmEWYl2UIMO9YqA4faJmS52iXdtlA3YyCfSlAbLYzjr0mzCWWQ7M8AgqDn2aumHoamsUtjZNhBfU
                        $dir45 = generate_string($permitted_chars, 7);
    
                    }
                    if (isset($_FILES))
                    {//---------------------------------------------------------------------------------------------------------------------------------
    
                        $allowedTypes = array(
                            'image/jpeg',
                            'image/png',
                            'image/gif'
                        );
                        mkdir($dir45);
                        $uploadDir = "filez/" + $dir45 + "/"; //Директория загрузки. Если она не существует, обработчик не сможет загрузить файлы и выдаст ошибку
                        for ($i = 0;$i < count($_FILES['file']['name']);$i++)
                        { //Перебираем загруженные файлы//---------------------------------------------------------------------------------------------------------------------------------
                            $uploadFile[$i] = $uploadDir . basename($_FILES['file']['name'][$i]);
    
                            $fileChecked[$i] = false;
    
                            echo $_FILES['file']['name'][$i] . " | " . $_FILES['file']['type'][$i] . " — ";
    
                            for ($j = 0;$j < count($allowedTypes);$j++)
                            { //Проверяем на соответствие допустимым форматам
                                if ($_FILES['file']['type'][$i] == $allowedTypes[$j])
                                {
    
                                    $fileChecked[$i] = true;
    
                                    break;
    
                                }
    
                            }
    
                            if ($fileChecked[$i])
                            { //Если формат допустим, перемещаем файл по указанному адресу
                                if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploadFile[$i]))
                                {
    
                                    echo "Успешно загружен <br>";
    
                                }
                                else
                                {
    
                                    echo "Ошибка " . $_FILES['file']['error'][$i] . "<br>";
    
                                }
                            }
    ?>

    я отметил места открывающихся но не закрытых скобок, вам остается их закрыть, с этим то хоть справитесь? и вот вам на будущее beautifytools.com/php-beautifier.php
    Ответ написан
    Комментировать
  • Как вывести звук на блютуз-колонку при включенном радио?

    Mr_Sergo
    @Mr_Sergo Автор вопроса
    Невозможно

    Возможно, но правда не на том смарте который указан в шапке темы

    Инструкция:

    • устанавливаем приложение "Микрофон и динамик" из Плей Маркета https://play.google.com/store/apps/details?id=com.... , если вдруг этого приложения там не окажется то ставьте приложение подобное обычному караоке, по крайней мере это приложение как раз для караоке
    • подключаем проводные наушники и запускаем стандартное (аналоговое) радио, сворачиваем его
    • подключаем блютуз колонку или наушники
    • запускаем установленное приложение на смарте
    • я выбирал 1-ый режим, поэкспериментируйте с этим
    • ну и внизу будет кнопка микрофона, жмем на нее
    • после всего проделанного у меня радио начало передаваться на блютуз колонку

    Тестировал на трёх смартах: Samsung Galaxy S3 (рут), Samsung A30S (не рут), Fly Fs501 (рут), на первых 2-х не работает, на последнем все отлично работает. Но скажу сразу что не знаю нужно рутировать смарт или нет, но таблички что "рут права предоставлены" я не видел (обычно при предоставлении рут-прав вылезает такое уведомление), по сему делаю вывод что рут не нужен. Тестировал на колонках JBL Flip 5 и Sven PS-240, так же тестировал на наушниках JBL E45 BT, все везде работает без каких либо помех.

    Если менять уровень громкости в стандартном приложении радио то появляются какие-то помехи, не знаю может так совпало просто, но уровень громкости меняю только в самом приложении "Микрофон и динамик" либо на рабочем столе

    Кстати на каком-то форуме читал что якобы в компании Самсунг дали ответ что не получится вывести аналоговое радио на блютуз, якобы там какие-то помехи возникают между адаптером блютуз и радио... не знаю, у меня лично все отлично работает, качество звука ну мм... 4/5 и то 4 только потому что, как писал выше, при изменении уровня громкости в стандартном приложении радио появляются помехи а так наверное 5/5

    Как-то так :)
    Ответ написан
    Комментировать
  • Правильно ли так работать с setTimeout?

    Mr_Sergo
    @Mr_Sergo
    по окончании одной анимации можно запускать следующую по animationend https://developer.mozilla.org/en-US/docs/Web/API/H... или transitionend https://developer.mozilla.org/ru/docs/Web/Events/t...

    демка https://codepen.io/Mr_Sergo/pen/KKzqPyw
    Ответ написан
    Комментировать
  • Как найти все слова начинающиеся на букву t?

    Mr_Sergo
    @Mr_Sergo
    найти все слова начинающиеся на t,

    или найти все буквы `t` в тексте ? почему все упорно ищут буквы а не слова начинающиеся на `t` ?

    если все таки слова, то можно так https://codepen.io/Mr_Sergo/pen/RwaGRRZ?editors=1012

    let matchWords = document.querySelector('p').textContent.replace(/[\.,:;-]/g, '').split(' ').filter(e => e.toLowerCase()[0] == 't').join(', ')
    console.log(matchWords)


    P.S кто-то вообще переводит каждую букву в верхний регистр и ищет в этой переведенной букве букву в нижнем регистре :facepalm: , как результат ни одной буквы в данном тексте не найдено.
    Ответ написан
    2 комментария
  • Почему не работает sort с массивом?

    Mr_Sergo
    @Mr_Sergo
    https://codepen.io/Mr_Sergo/pen/poyyBpr?editors=0012

    let imageParts = [0,1,2,3,4,5,6,7,8,9]
    imageParts.sort((a, b) =>  Math.random() - 0.5 );
    console.log(imageParts)
    Ответ написан
  • Как убрать автоматическое выставление ';' в css?

    Mr_Sergo
    @Mr_Sergo
    попробуйте:
    в редакторе нажмите CTRL+SHIFT+P откроется палитра команд
    введите settings, из выпадающего списка кликните по пункту Open Settings (JSON) откроется settings.json
    добавьте строку

    "css.completion.completePropertyWithSemicolon": false,

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

    Mr_Sergo
    @Mr_Sergo Автор вопроса
    Вообщем покопавшись пару дней в инете- результатов не дало. Покопавшись еще пару дней в defaultSettings.json нашел таки строку отвечающую за пробелы в комментировании, но файл только для чтения, поэтому кому интересно:

    • жмем CTRL+SHIFT+P, откроется палитра команд
    • вводим settings, из выпадающего списка кликаем по пункту Open Settings (JSON), откроется settings.json
    • добавляем строку "editor.comments.insertSpace": false,

    Сохраняем, готово

    P.S: Лень — двигатель прогресса
    Ответ написан
    Комментировать
  • Как получить id формы при вызове submit через addEventListener?

    Mr_Sergo
    @Mr_Sergo
    https://codepen.io/Mr_Sergo/pen/rNexrKz?editors=1011
    document.addEventListener('submit', function(e) {
    	e.preventDefault()
    	console.log(e.target.id)
    })
    Ответ написан
    Комментировать
  • Виндовс стал запрашивать пин код для подключения блютуз наушников?

    Mr_Sergo
    @Mr_Sergo Автор вопроса
    Решение оказалось простым, я забыл нажать кнопку для того чтобы устройства могли обнаруживать наушники :D ну и пин код 0000 подошел :)
    Ответ написан
    Комментировать
  • Как кроме блока добавлять еще и фото?

    Mr_Sergo
    @Mr_Sergo
    Ответ написан
    Комментировать
  • Как реализовать закрывающий крестик в добавленом блоке?

    Mr_Sergo
    @Mr_Sergo
    https://codepen.io/Mr_Sergo/pen/OJJLqOE
    <select id="secectorOne" onchange="addblock(this)">
        <option value="80">80см</option>
        <option value="90">90см</option>
        <option value="120">120см</option>
        <option value="140">140см</option>
        <option value="160">160см</option>
        <option value="180">180см</option>
    </select>
    
    <p>90см <span class="close">&times;</span></p>
    <p>80см <span class="close">&times;</span></p>
    <p>100см <span class="close">&times;</span></p>

    function addblock(el) {
        var p = document.createElement("p");
        p.innerHTML = el.querySelectorAll("option")[el.selectedIndex].textContent + '<span class="close"> x </span>';
        el.parentNode.appendChild(p);
    }
    
    document.addEventListener('click',e => {
        if (e.target.className == 'close') {
            e.target.parentElement.remove();
        }
    });
    Ответ написан
    Комментировать
  • Как передать массив из js в php?

    Mr_Sergo
    @Mr_Sergo
    по подробней?

    function myChangeHandler() {
    	const checkedInputs = myForm.querySelectorAll('input:checked');
    	const ids = Array.from(checkedInputs).map(inp => inp.id);
    
    	const idsListString = JSON.stringify(ids);
    
    	(async () => {
    		let answer = await fetch('handler.php',{
    			method: 'POST',
    			headers: {'Content-type' : 'application/x-www-form-urlencoded; charset=UTF-8'},
    			body: 'arrFromJS=' + idsListString  // на сервере ловить $_POST['arrFromJS']
    		}),
    		data = await answer.text();
    		console.log(data);
    	})();
    	
    	// display
    	out.textContent = idsListString
    	// save
    	localStorage.setItem('data', idsListString)
    }
    Ответ написан
    Комментировать
  • Как сделать кнопку 18+ на сайт?

    Mr_Sergo
    @Mr_Sergo
    Хочу сделать кнопку на сайт 18+

    https://codepen.io/Mr_Sergo/pen/ymPYWq?editors=0010
    Ответ написан
    Комментировать
  • При клике добавить 2-й класс блока другому элементу?

    Mr_Sergo
    @Mr_Sergo
    https://codepen.io/Mr_Sergo/pen/GVMear
    let block = document.querySelectorAll('.block');
    let container = document.querySelector('.container');
    
    for(let el of block){
    	el.addEventListener('click',()=> {
    		container.setAttribute('class',`${container.classList[0]} ${el.classList[1]}`);
    	});
    }

    ну или через делегирование
    <div class="container"></div>
    
    <div class="blocks">
    	<div class="block _black"></div>
    	<div class="block _blue"></div>
    	<div class="block _red"></div>
    	<div class="block _yellow"></div>
    </div>

    let container = document.querySelector('.container');
    
    document.querySelector('.blocks').addEventListener('click',e => {
    	if(e.target.classList.contains('block')) container.className = `${container.classList[0]} ${e.target.classList[1]}`;
    });
    Ответ написан
    Комментировать
  • Как добавить дополнительный жесткий диск к OpenServer?

    Mr_Sergo
    @Mr_Sergo Автор вопроса
    Вопрос закрыт.
    Сделал по-другому: подключил жесткий диск как папку.
    Ответ написан
    Комментировать
  • Как задать label?

    Mr_Sergo
    @Mr_Sergo
    Так еще можно
    let labels = Array(300).fill('');
    console.log(labels);  // ["","","",...] - 300 элементов
    Ответ написан
    Комментировать