• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

input.innerHTML czy jesteś taka możliwość?

Object Storage Arubacloud
0 głosów
364 wizyt
pytanie zadane 28 grudnia 2019 w JavaScript przez Paweł123 Nałogowiec (33,500 p.)

Cześć, chciałbym, aby wynik ze stopera zapisywał się w polu Input.

Żeby cos takiego było.

Znalazłem, że trzeba ustawić wartość w polu value. Jednak ja mam tam już ustawioną wartość.

<input type="submit" value="Wyślij do bazy danych" />

Czy ktoś wie jak rozwiązać ten problem?

<!DOCTYPE HTML>
<html lang="pl">

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <title>Work Time System</title>
</head>

<body>

    <?php

    echo "<p>Witaj ".$_SESSION['user'].'! [ <a href="logout.php">Wyloguj się!</a> ]</p>';
    	
?>

    <nav class="controls">
        <a href="#" class="button" id="#start" onclick="start();">START</a>
        <a href="#" class="button" id="#stop" onclick="stop();">STOP</a>
        <a href="#" class="button" id="#clear" onclick="reset();">CLEAR</a>
    </nav>


    <div id="#timer">00:00:00:00</div>

    <form action="add.php" method="post">


        Czas pracy: <br /> <input type="text" name="time" /> <br /><br />
        <input type="submit" value="Wyślij do bazy danych" />

    </form>

    <script>
        var hour = 0;
        var min = 0;
        var sec = 0;
        var miliSec = 0;
        var timer;

        function callTimer() {
            miliSec++;
            if (miliSec < 100) {
                if (miliSec === 99) {
                    miliSec = 0;
                    sec++;
                    if (sec === 60) {
                        sec = 0;
                        min++;
                        if (min === 60) {
                            min = 0;
                            hour++
                        }
                    }
                }
            } else {
                miliSec = 0;
            }


            document.getElementById("#timer").innerHTML = hour.toString().padStart(2, "0") + ":" + min.toString().padStart(2, "0") + ":" + sec.toString().padStart(2, "0") + ":" + miliSec.toString().padStart(2, "0");
        }


        function start() {
            document.getElementById("#start").disabled = true;
            timer = setInterval(callTimer, 10);
        }

        function stop() {
            document.getElementById("#start").disabled = false;
            clearInterval(timer);
        }

        function reset() {
            stop();
            hour = 0;
            min = 0;
            sec = 0;
            miliSec = 0;

            document.getElementById("#timer").innerHTML = hour.toString().padStart(2, "0") + ":" + min.toString().padStart(2, "0") + ":" + sec.toString().padStart(2, "0") + ":" + miliSec.toString().padStart(2, "0");
        }

    </script>
</body>

</html>

 

2 odpowiedzi

0 głosów
odpowiedź 28 grudnia 2019 przez Tomek Sochacki Ekspert (227,510 p.)

Znalazłem, że trzeba ustawić wartość w polu value. Jednak ja mam tam już ustawioną wartość.

no to skoro masz wartość to co chcesz więcej zrobić bo niezbyt rozumiem?

A tak w ogóle to po co Ci tu formularz? Skoro ten czas i tak ustawiasz w JS no to po prostu zapisuj go sobie w jakieś zmiennej, aktualizowanej cały czas i na click buttona zrób requestr na jakiś swój endpoint np. POST. A jak się upierasz przy takim tradycyjnym html'owym formularzu to po co w sumie to pole input? Po co 2 razy pokazywać czas? Zrób lepiej pole hidden z odpowiednią wartością.

komentarz 28 grudnia 2019 przez Paweł123 Nałogowiec (33,500 p.)

endpointem jaki masz na serwerze

Nie rozumiem o co z tym chodzi, możesz wytłumaczyć mi jaśniej?

komentarz 28 grudnia 2019 przez Tomek Sochacki Ekspert (227,510 p.)
no masz przecież jakiś tam url na którym chcesz obsłużyć ten formularz z tego co widzę u Ciebie jest to prawdopodobnie POST add.php
komentarz 28 grudnia 2019 przez Paweł123 Nałogowiec (33,500 p.)

Tak, czyli piszę funkcje w JS, która pobiera wartość z diva i podaję endpointa, czyli adres localhost/czas_pracy/add.php w tej funkcji. Następnie wywołuję onclick tę funkcję, aby wysłać dane do bazy danych?

komentarz 28 grudnia 2019 przez Tomek Sochacki Ekspert (227,510 p.)
teraz to już zupełnie nie wiem co chcesz zrobić... przed chwilą sam mówiłeś, że nie chcesz ajaxem tylko zwykłym formem htmlowym więc po co Ci onclick :) ?
komentarz 28 grudnia 2019 przez Paweł123 Nałogowiec (33,500 p.)
To co polecasz bardzo początkującej osobie?

Jak to powinienem zrobić?
0 głosów
odpowiedź 28 grudnia 2019 przez misiek.sz Bywalec (2,050 p.)

Zrób w inpucie placeholder

<input type="submit" placeholder="Wyślij do bazy danych" />

a w JS do value wstaw to co chcesz i po problemie.

Podobne pytania

0 głosów
2 odpowiedzi 255 wizyt
0 głosów
2 odpowiedzi 240 wizyt
0 głosów
0 odpowiedzi 391 wizyt
pytanie zadane 28 stycznia 2017 w JavaScript przez TheFunny Gaduła (3,420 p.)

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,003 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...