• Как преобразовать массив POST в строки?

    @generate
    ...
    foreach ($_POST['id'] as $key => $value) {
    	$id = $value;
    	$name = $_POST['name'][$key];
    	$price = $_POST['cena_no_dost'][$key];
    
    	$text .= "({$id}, '{$name}', {$price}),\r\n";
    }
    Ответ написан
    Комментировать
  • Перевод пары строчек кода с jQury в JS?

    @generate
    ...
    document.querySelector('#popup-one__center').onchange = function(){
    	document.querySelector('#set_mail').value = document.querySelectorAll('#popup-one__center > option')[this.selectedIndex].dataset.mail;
    }
    Ответ написан
    Комментировать
  • Как получить значения из select (jquery.form.styler)?

    @generate
    ...
    document.querySelector('#cities-select').onchange = function() {
      alert(this.value) //тут изменяешь
    }
    Ответ написан
    Комментировать
  • Как получить координаты курсора относительно блока, не учитывая дочерних элементов?

    @generate
    ...
    Лучше брать координаты от всего документа где находится курсор и отнимать с него ширину или высоту блока
    event.clientY - card.getBoundingClientRect().top

    const card = document.querySelector('.container');
    const cardItm = document.querySelector('.card');
    const halfHeight = card.offsetHeight / 2;
    const halfWidth = card.offsetHeight / 2;
    
    card.addEventListener('mousemove', startRotate);
    card.addEventListener('mouseout', stopRotate);
    
    function startRotate() {
      cardItm.style.transform = `rotateX(${-((event.clientY - card.getBoundingClientRect().top) - halfHeight) / 20}deg) rotateY(${((event.clientX - card.getBoundingClientRect().left) - halfWidth) / 20}deg)`;
    };
    
    function stopRotate(event) {
      cardItm.style.transform = 'rotateX(0)';
    };
    Ответ написан
    Комментировать
  • Как записать аналог из PHP в JavaScript?

    @generate
    ...
    Думаю так будет работать похожим на [] в php
    newarray[newarray.length]

    let newarray = []; //Создаем новый массив
    
    //Ваш array массив обходим в цикле
    array.forEach(element => {
    newarray[newarray.length] = element.text;
    });
    
    console.log(newarray);
    Ответ написан
    Комментировать
  • PHP и Javascript, как сделать, чтобы время совпадало?

    @generate Автор вопроса
    ...
    Нашел решение оказывается можно вместо

    new Date().getHours()
    использовать
    new Date().getUTCHours()
    Ответ написан
    Комментировать
  • Как выводить окно?

    @generate
    ...
    если просто такое окно со ссылкой
    let yandex = window.open("https://yandex.ru/", "Yandex", "width=600,height=600");
    Ответ написан
    Комментировать
  • Как поместить созданный блок внутрь HTML кода в return?

    @generate
    ...
    document.body.innerHTML = renderTemplate();
    
    
    function renderTemplate() {
      const div = document.createElement("div")
      div.textContent = "Очень важный блок"
    
      return '<main class="container">'+ div.outerHTML +'<div>Какая-то другая разметка</div></main>';
    }
    Ответ написан
    2 комментария
  • Как лучше сделать темную/светлую тему для сайта?

    @generate
    ...
    Так можно изменить ссылку на стиль
    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    
    	<link rel="stylesheet" type="text/css" href="light.css" class="style">
    </head>
    <body>
    
    <button id="color">Сменить цвет</button>
    
    <script type="text/javascript">
    	if (localStorage.getItem('style') == 'dark') {
    		document.querySelector('.style').href="dark.css";
    	}
    	document.querySelector('#color').onclick = function (){
    		if (document.querySelector('.style').getAttribute('href') === 'light.css') {
    			document.querySelector('.style').href="dark.css";
    			localStorage.setItem('style', 'dark');
    		} else {
    			document.querySelector('.style').href="light.css";
    			localStorage.setItem('style', 'light');
    		}
    	}
    </script>
    
    </body>
    </html>


    Но лучше использовать селекторы чтобы менять стиль. И использовать один css файл

    <style type="text/css">
    	body {
    		background: #fff;
    		color: #000;
    	}
    	#color {
    		color: #fff;
    		background: #000;
    	}
    	.dark {
    		background: #000;
    		color: #fff;
    	}
    	.dark #color {
    	color: #000;
    	background: #fff;
    	}
    
    </style>
    
    
    
    <button id="color">Сменить цвет</button>
    <script type="text/javascript">
    	if (localStorage.getItem('style') == 'dark') {
    		document.body.classList.toggle('dark');
    	}
    	document.querySelector('#color').onclick = function (){
    		document.body.classList.toggle('dark');
    		if (document.body.getAttribute('class') == 'dark') {
    			localStorage.setItem('style', 'dark');
    		} else {
    			localStorage.setItem('style', '');
    		}
    	}
    </script>
    Ответ написан
    Комментировать
  • Как сделать пагинацию для сайта?

    @generate
    ...
    Тут удобно расписано как сделать www.php.su/articles/?cat=examples&page=062
    Доработал его для себя

    $db = new mysqli('localhost', 'root', 'root', 'basename'); //подключение к базе
    $pageformat = '/test.php?page={pagenum}'; //Формат ссылки вместо {pagenum} будет номер страницы
    $page = $_GET['page']; //Номер страницы
    $num = 10; //Количество записей
    $sql = "FROM `test`"; //sql запрос без SELECT
    
    $result = Pagination ($db, $sql, $num, $pageformat, $page);
    
    print_r($result['pagination']); //Ссылки на страницы
    
    print_r($result['result']); //Контент в массиве
    
    function Pagination ($db, $sql, $num, $pageformat, $page){
    $result = $db->query("SELECT COUNT(*) ". $sql)->fetch_row();
    $total = intval(($result[0] - 1) / $num) + 1;
    $page = intval($page);
    if(empty($page) or $page < 0) $page = 1;
    if($page > $total) $page = $total;
    $start = $page * $num - $num;
    $getinfo = $db->query("SELECT * " .$sql. " LIMIT $start, $num");
    $info = $getinfo->fetch_all(MYSQLI_ASSOC);
    preg_match('/(?<a>.*?){pagenum}(?<b>.*?)/', $pageformat, $pg);
    if ($page != 1) $pervpage = "<a href={$pg['a']}1{$pg['b']}><<</a><a href={$pg['a']}".($page - 1)." {$pg['b']}><</a>";
    if ($page != $total) $nextpage = ' <a href='.$pg['a']. ($page + 1) .$pg['b'].'>></a><a href='.$pg['a'] .$total. $pg['b'].'>>></a>';
    if($page - 2 > 0) $page2left = ' <a href='.$pg['a']. ($page - 2).$pg['b'].'>'. ($page - 2) .'</a> ';
    if($page - 1 > 0) $page1left = '<a href='.$pg['a']. ($page - 1).$pg['b'].'>'. ($page - 1) .'</a> ';
    if($page + 2 <= $total) $page2right = '  <a href='.$pg['a']. ($page + 2).$pg['b'] .'>'. ($page + 2).'</a>';
    if($page + 1 <= $total) $page1right = '  <a href='.$pg['a']. ($page + 1).$pg['b'].'>'. ($page + 1).'</a>';
    $pagination =  $pervpage.$page2left.$page1left.'<a class="active" href="#">'.$page.'</a>'.$page1right.$page2right.$nextpage;
    $result = array('pagination' => $pagination,'result' => $info);
    return $result;
    }
    Ответ написан
    Комментировать
  • Как записать в кавычках переменную с индексом?

    @generate
    ...
    $html = <<<HTML
    
    <div class="{$object['class']}"></div>
    
    HTML;
    Ответ написан
  • Как отсортировать данные из файла?

    @generate
    ...
    $file = '1::сергей::петров 2::иван::иванов 3::катя::воронина';
    
    preg_match_all('/(?<id>\d+)::(?<name>[^::]*)::(?<surname>[^\d]*)/', $file, $match);
    
    foreach ($match['id'] as $key => $value) {
      $newarr[$value] = ['name' => $match['name'][$key], 'surname' => $match['surname'][$key]];
    }
    
    print_r($newarr);
    Ответ написан
  • Как спарсить со страницы праздники?

    @generate
    ...
    Кажется нужно указывать User-Agent
    <?php
    $html = 'http://kakoysegodnyaprazdnik.ru/';
    $ch = curl_init($html);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $html = curl_exec($ch);
    curl_close($ch);
    preg_match_all('/<span itemprop="text">(?<val>[^<]*)<\/span>/', $html, $match);
    print_r($match['val']);
    ?>

    Результат
    Array
    (
        [0] => Праздник иконы Божией Матери «Утоли моя печали»
        [1] => День рождения огнетушителя
        [2] => Всероссийский день зимних видов спорта
        [3] => День полётов на луну (мыслимых и немыслимых)
        [4] => День числа Эйлера («e» Day)
        [5] => День памяти священномученика Владимира, митрополита Киевского
        [6] => День герба Республики Татарстан
        [7] => День памяти святителя Григория Богослова
        [8] => День российского бизнес-образования
        [9] => День отказа от ненужных отношений (Dump Your Significant Jerk Day) - США
        [10] => День признательности свиной шкурке (Pork Rind Appreciation Day) - США
        [11] => День «Помашите рукой соседу» (Wave All Your Fingers At Your Neighbor Day) - США
        [12] => День отправки открыток друзьям (National Send a Card to a Friend Day) - США
        [13] => День розы (Rose Day) - Индия
        [14] => День пудинга (British Yorkshire Pudding Day) - Великобритания
        [15] => День борьбы с ВИЧ и СПИД среди афроамериканцев (National Black HIV/AIDS Awareness Day) - США
        [16] => День периодической таблицы (National Periodic Table Day) - США
        [17] => День поста и духовных практик «Шат-тила Экадаши» (Shat Tila Ekadashi) - Индия
        [18] => Воскресенье Супербоула (Super Bowl Sunday) - США
        [19] => День северных территорий (Northern Territories Day) - Япония
        [20] => День святого Мэла (Saint Mel`s Day) - Ирландия
        [21] => День балета (Ballet Day) - США
        [22] => Скаутское воскресенье (Scout Sunday) - США
        [23] => День независимости (Grenada Independence Day) - Гренада
        [24] => День фетучини «Альфредо» (National Fettuccine Alfredo Day) - США
        [25] => Именины у Григория, Моисея, Бориса, Филиппа, Александра, Виталия
        [26] => Григорьев день (Григорий Весноуказатель)
    )
    Ответ написан
  • Как стилизовать options в select?

    @generate
    ...
    Думаю примерно так работает бутстрап select, дальше стилиризуй как нужно.
    Передаешь select объект в функцию

    //Тут передаешь класс select
    Select(document.querySelector('.beatu-select'));


    https://codepen.io/vsjerkil/pen/MWbYYOa?editors=1010
    Ответ написан
    1 комментарий
  • Не могу вывести информацию из базы, как решить проблему?

    @generate
    ...
    //Вместо этого
                    $row_two = ''; 
                    foreach($conn->query($sql) as $rows) {
                        $row_two = $rows;
                    }
    // Это
    $row_two = $conn->query($sql)->fetch_assoc();

    Да и вообще query только выполняет запрос, чтобы получить содержимое нужно пользоваться фукциями fetch_assoc, fetch_array или fetch_all
    Ответ написан
  • Табы в JS. Как сделать так, чтобы при нажатии на кнопку повторно таб закрывался?

    @generate
    ...
    Нужно проверить если данный таб активен то убрать класс актив

    if(currentBtn.classList.contains('active')){
                currentBtn.classList.remove('active');
                currentTub.classList.remove('active');
            }


    Полный код
    const tabsBtn = document.querySelectorAll(".tabs__nav-btn");
    const tabsItems = document.querySelectorAll(".tabs__item");
    
    tabsBtn.forEach(onTabClick);
    
    function onTabClick(item) {
            item.addEventListener("click", function() {
            let currentBtn = item;
            let tabId = currentBtn.getAttribute("data-tab");
            let currentTub = document.querySelector(tabId);
            
            if(currentBtn.classList.contains('active')){
                currentBtn.classList.remove('active');
                currentTub.classList.remove('active');
            } else if ( ! currentBtn.classList.contains('active') ) {
                tabsBtn.forEach(function(item) {
                    item.classList.remove('active');
                });
    
                tabsItems.forEach(function(item) {
                    item.classList.remove('active');
                });
    
    
                currentBtn.classList.add('active');
                currentTub.classList.add('active');
            }
    
        });
    }
    Ответ написан
    2 комментария
  • Как через регулярные выражения узнать, есть ли слово, а потом разобрать на составляющие?

    @generate
    ...
    Есть ли слово можно узнать stristr. Я новичек в regexr, но так работает.
    $str = 'юр. пансионат солнышко 77';
    
    if (stristr($str, 'юр.')) {
    	preg_match('#юр\.\s(.*?)\s(\d+)#', $str, $match);
    	$name = $match[1]; //Название
    	$nubmer = $match[2]; //Номер
    	print_r($match);
    }
    Ответ написан
    Комментировать
  • Как структурировать данные категорий при парсинге?

    @generate
    ...
    $arr =  array(
        '/category0/subcat1/subcat2',
        '/category0/subcat1/subcat4',
        '/category0/subcat5/subcat6',
        '/category2/subcat7/subcat8',
        '/category2/subcat9/subcat10',
        '/category2/subcat11/subcat12'
    );
    
    foreach ($arr as $key => $value) {
    preg_match_all('#/category(\d+)/subcat(\d+)/subcat(\d+)#', $value, $newmatch);
    $cats[] = array('category' => $newmatch[1][0], 'subcat' => $newmatch[2][0],  'subcat_' => $newmatch[3][0]);
    unset($newmatch);
    }
    
    print_r($cats);

    Результат
    Array
    (
        [0] => Array
            (
                [category] => 0
                [subcat] => 1
                [subcat_] => 2
            )
    
        [1] => Array
            (
                [category] => 0
                [subcat] => 1
                [subcat_] => 4
            )
    
        [2] => Array
            (
                [category] => 0
                [subcat] => 5
                [subcat_] => 6
            )
    
        [3] => Array
            (
                [category] => 2
                [subcat] => 7
                [subcat_] => 8
            )
    
        [4] => Array
            (
                [category] => 2
                [subcat] => 9
                [subcat_] => 10
            )
    
        [5] => Array
            (
                [category] => 2
                [subcat] => 11
                [subcat_] => 12
            )
    
    )
    Ответ написан
    Комментировать
  • Как скачать сайт?

    @generate
    ...
    Я так скачиваю, домен с http
    wget -k -p domain.com —no-check-certificate
    Ответ написан
    Комментировать
  • Как с помощью php изменить href у ссылки зная ее класс?

    @generate
    ...
    Я не очень хорошо знаю регулярки, но примерно так
    Но тут href должен стоять после класса
    <?php
    
    $str = "<a class=\"like\" href=\"site1=site2\" onclick=\"ga('send', 'event', 'outbound', 'click', 'google.ru/music_save/');metrika_goal('music_save');\">сохранить трек</a>";
    
    echo ChangeHref($str, 'like' ,'https://www.google.com/');
    
    function ChangeHref($str, $class, $link){
    return preg_replace('#(<a[^>]*class="[^"]*'.$class.'[^"]*"[^>]*href=")([^>])*("[^>]*>)#', "$1". $link. "$3", $str);
    }
    ?>
    Ответ написан
    Комментировать