Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2024, 09:00   #1
Thomek
Пользователь
 
Регистрация: 05.02.2022
Сообщений: 32
По умолчанию Как исправить этот код таймера?

Как исправить этот код таймера чтобы работал правильно?
Нужно чтобы после нажатия кнопки, отправились данные из формы, исчезла форма и появился таймер обратного отсчёта!
Но там не отправляется данные из формы.. исправьте пожалуйста я плохо понимаю в коде..

Код:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            html, body {
                margin: 0px;
                padding: 0px;
                width: 100%;
                height: 100%;
            }
            body, div, button {
                display: flex;
            }
            body {
                flex-direction: row;
                justify-content: center;
                align-items: center;
            }
            #wrap {
                position: relative;
                justify-content: center;
                flex-basis: 20%;
            }
            form {
                display: flex;
                flex-direction: row;
                justify-content: center;
                align-items: center;
                flex: 1;
                flex-wrap: wrap;
                gap: 10px;
            }
            label {
                display: flex;
                flex-basis: 30%;
                box-sizing: border-box;
            }
            input {
                display: flex;
                flex-basis: 60%;
                box-sizing: border-box;
            }
            input:last-child {
                cursor: pointer;
            }
            #timer {
                
                justify-content: center;
                align-items: center;
                position: absolute;
                left: 0;
                top: 0;
                right: 0;
                bottom: 0;
                background-color: #fff;
                font-size: 2.5rem;
            }
            .timerShow {
                display: flex;
            }
            .timerHide {
                display: none;
            }
        </style>
    </head>
    <body>
        <div id="wrap">
            <form name="form1">
                <label for="" id="inpText">Текст:</label>
                <input type="text" name="text" id="inpText">
                <label for="" id="inpLink">Ссылка:</label>
                <input type="text" name="link" id="inpLink">
                <input type="submit" name="submit" value="Отправить форму">
            </form>
            <div id="timer" class="timerHide">00:00</div>
        </div>
        <script>
            function addZero(x){
                return (x < 10) ? "0"+x : ""+x;
            }
            function launchTimer(dateEnd){
                if(dateEnd != null && divTimer){
                    const interval = setInterval(() => {
                        const currDate = new Date();
                        const secondsTotal = (dateEnd.getTime() - currDate.getTime()) / 1000;
                        if(secondsTotal <= 0){
                            divTimer.className = "timerHide";
                            localStorage.removeItem("delay");
                            clearInterval(interval);
                        }
                        else{
                            let minutes = Math.floor(secondsTotal / 60);
                            let seconds = Math.floor(secondsTotal - (minutes * 60));
                            divTimer.textContent = addZero(minutes)+":"+addZero(seconds);
                        }
                    }, 1000);
                }
            }
            const wrapper = document.getElementById("wrap");
            const divTimer = document.getElementById("timer");
            const form = document.forms.form1;
 
            const storedDate = localStorage.getItem("delay");
            if(storedDate){
                let date = new Date(parseInt(storedDate, 10));
                if(date){
                    launchTimer(date);
                    divTimer.className = "timerShow";
                }
                else{
                    divTimer.className = "timerHide";
                }
            }
            else{
                divTimer.className = "timerHide";
            }
        
            if(wrapper && form){
                form.submit.addEventListener("click", async (event) => {
                    event.preventDefault();
                    const dateEnd = new Date();
                    // dateEnd.setHours(dateEnd.getHours() + 1);
                    dateEnd.setSeconds(dateEnd.getSeconds() + 45); // Для теста
                    divTimer.className = "timerShow";
                    localStorage.setItem("delay", dateEnd.getTime().toString());
                    launchTimer(dateEnd);
                    try {
                        const url ="http://awesome.site/api/data";
                        const response = await fetch(url);
                        if (!response.ok) {
                            throw new Error(`Response status: ${response.status}`);
                        }
                        const json = await response.json();
                    } catch (error) {
                        console.error(error.message);
                    }
                });
            }
        </script>
    </body>
</html>
Код:
<?php
    if (isset($_POST['submit'])) {
        //Принимаем постовые данные
        $text = $_POST['text'];
        $link = $_POST['link'];
        //формируем строку для записи
        $str = $text . '|' . $link . "\r\n";
        //открываем файл для записи.Если файл не существует-он будет создан
        $fopen = fopen('my.txt', 'a+');
        //записываем строку
        fputs($fopen, $str);
        //удаляет старую строку
        $lines = file('my.txt');
        unset($lines[0]);
        file_put_contents('my.txt', implode('', $lines));
        //закрываем файл
        fclose($fopen);
        //выводим текст
        echo "Ссылка добавлена!";
        //рефреш на туже страницу
        header("refresh: 0; url=http://ссылка страницы");
    }
    ?>

Последний раз редактировалось Thomek; 24.07.2024 в 09:48.
Thomek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто может исправить ошибки в скрипте? Взамен вам же и останется этот скрипт. lkivaka PHP 3 28.10.2017 23:09
Замена таймера medva1997 C# (си шарп) 1 27.06.2014 22:43
Пауза таймера qwerty74 C# (си шарп) 3 01.07.2011 20:53
Работа Таймера Danglover Общие вопросы Delphi 3 27.03.2011 16:02
Отключение таймера tae1980 Microsoft Office Excel 1 14.03.2011 14:06