Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Sherif 19:57
 » elliot_pl 19:49
 » DJopek 19:42
 » Curro 19:31
 » wrrr 19:28
 » waski 19:21
 » Draghmar 19:20
 » dugi 19:18
 » Wedelek 19:14
 » Kraszan 19:11
 » Katoda Lt 19:10
 » past 19:06
 » bajbusek 19:04
 » ripek 19:03
 » Master/Pe 19:03
 » maddog 18:53
 » Kilgor 18:48
 » rooter666 18:47
 » Dexter 18:46
 » Visar 18:44

 Dzisiaj przeczytano
 36885 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2025
A R C H I W A L N A   W I A D O M O Ś Ć
    

Potrzebna pomoc z (chyba) HTML, prosty formularz z wyliczeniem dat. , waldisobon 18/08/07 21:08
Znaczy się prosty jak dla kogo...

Od razu mówię - żadne zaliczenie ani nic z tych rzeczy. Z html, php i innych takich jestem nygus, a kombinuję zrobić sobie takie coś jak na tym obrazku:
http://img521.imageshack.us/...=clipboard01xn5.jpg


W skrócie - mam dwa pola, w których podaję daty, a w trzecim wyliczona jest ilość dni od tej "bliższej" daty.
Aha, no i dobrze by było, gdyby położenie pól było definiomalne w kodzie.

Ktos pomoże laikowi?

Niektórych boardowiczów uważam za idiotów i
oni o tym wiedzą.

  1. raczej php , _oLo_1984 18/08/07 21:52
    kodzik:

    <?php

    echo '<table border="1">';
    echo '<form action="nazwa_tego_pliku.php" method=post>';
    echo '<tr><td>Data ostatniego wpływu</td><td><input type="text" name="data_a"></td></tr>';
    echo '<tr><td>Data ostatniej wypłaty</td><td><input type="text" name="data_b"></td></tr>';
    echo '<tr><td>Dzisiejsza data</td><td><input type="text" name="data_a" value='.date("Y-m-d").'></td></tr>';
    echo '<tr><td colspan="2" align="center"><input type="submit" value="Policz"></td></tr>';
    echo '</form>';
    echo '</table>';

    if(!empty($_POST['data_a']) AND !empty($_POST['data_b']))
    {

    echo '<br /><br />';
    echo '<table><tr>';
    echo '<tr><td>Od ostatniej operacji mineło</td><td>';



    $a=strtotime($_POST['data_a']);
    $b=strtotime($_POST['data_b']);
    $x=strtotime(date("Y-m-d"));

    if(($x-$a)/89400 > ($x-$b)/89400)
    {
    echo intval(($x-$a)/89400)+1;
    }
    elseif(($x-$a)/89400 < ($x-$b)/89400)
    {
    echo intval(($x-$b)/89400)+1;
    }

    echo ' dni</td></tr>';

    }
    else
    {
    echo 'Brak danych';
    }
    ?>

    jezeli są jakies bledy to niech ktos poprawi, zaczynam juz 3 browar wiec cosik mogłem skopać

    pozdro ...

    awake

    1. Tos mnie teraz zabił... , waldisobon 18/08/07 21:56
      Dzięki bardzo za zaangażowanie (tym bardziej po trzecim ;-) al o ile z czystego html'a od biedy zrozumiem (w najprostszej postaci) o tyle o php wiem, że jest ;-(

      Możesz jakoś przejrzyściej?

      Niektórych boardowiczów uważam za idiotów i
      oni o tym wiedzą.

      1. obawiam się , _oLo_1984 18/08/07 22:04
        ze w czystym html tego nie zrobisz - poprostu sie nie da, no a kod jest w sumie banalny (jezeli jakies tam podstawy programowania masz, jezeli nie to ja nic nie poradze) jezeli o php nie wiesz to zerknij na www.php.net.pl, znajdziesz tam tez w manualu funkcje ktore wykozystalem no i kilka ogulnych informacji, niestety tyle z mojej strony

        powodzenia i pozdrawiam

        awake

    2. co to jest 89400? , Grocal 18/08/07 22:41
      :))))))

      Z tego co widze, co mozna to i w javascripcie zrobic, jak sie komus chce.

      Na pewno, na razie, w ogóle...
      Naprawdę, naprzeciwko, stąd...
      Ortografia nie gryzie!

      1. hmm , _oLo_1984 18/08/07 22:54
        chyba powinno być 86400 ... to dlatego mi coś nie pasowało, zle policzylem ilosc sekund w dniu (no i dlatego to +1 ) brawo za czujnosc :D

        awake

  2. _oLo_1984 : a od czego jest JavaScript? , pi_3-14 18/08/07 23:13
    ...pewnie służy tylko do robienia efektów onmouseover : )
    @waldisobon: poczytaj o obiekcie Date w JS.

    <script type="text/javascript">

    function makeDate(str) {
    var a = str.split('-');
    return Date.UTC(parseInt(a[0], 10), parseInt(a[1], 10)-1, parseInt(a[2], 10));
    }

    function oblicz() {
    var msInDay = 86400000;
    var a = makeDate(document.getElementById('data-a').value);
    var b = makeDate(document.getElementById('data-b').value);
    var x = makeDate(document.getElementById('data-x').value);
    document.getElementById('data-result').value = Math.min(x-a, x-b) / msInDay;
    }

    </script>

    </head>

    <body>

    A: <input type="text" id="data-a" value="2007-05-01"/><br />
    B: <input type="text" id="data-b" value="2007-05-20" /><br />
    X: <input type="text" id="data-x" value="2007-08-18" /><br />
    Wynik: <input type="text" id="data-result" /> <input type="button" value="Oblicz" onclick="oblicz()" /><br /><br />

    1. eh ... , _oLo_1984 18/08/07 23:19
      nie powiedzialem nigdzie ze tylko php sluzy do tego celu ;p

      awake

    2. Ooo, prawie dobrze... , waldisobon 21/08/07 14:15
      Pi_3_14, możesz mi jeszcze poradzić.

      Przyjrzałem się Twojemu kodowi i spróbowałem coś podobnego napisać.

      Zaznaczam, że w życiu na oczy Javascriptu nie widziałem. I to działa, ale mam dwa pytania:

      1. Po załadowaniu strony pojawia się formularz - trzeba wcisnąć "Oblicz" - jak zrobić, aby przycisku nie było, a przeliczało się przy załadowaniu strony?
      2. Data "X" - jak zrobic aby się przy załadowaniu strony ustawiała data bieżąca?



      Taki kod mi wyszedł:
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

      <html>
      <head>
      <title></title>
      <meta content="Testowa" name="Testowa">
      </head>

      <body>
      <script type="text/javascript">

      function makeDate(str) {
      var a = str.split('-');
      return Date.UTC(parseInt(a[0], 10), parseInt(a[1], 10)-1, parseInt(a[2], 10));
      }

      function oblicz() {
      var msInDay = 86400000;
      var a = makeDate(document.getElementById('data-a').value);
      var b = makeDate(document.getElementById('data-b').value);
      var c = makeDate(document.getElementById('data-c').value);
      var d = makeDate(document.getElementById('data-d').value);
      var x = makeDate(document.getElementById('data-x').value);
      document.getElementById('data-result').value = Math.min(x-a, x-b, x-c, x-d) / msInDay;
      }
      </script>

      <form>
      A: <input id="data-a" value="2007-05-01"><br>
      B: <input id="data-b" value="2007-05-20"><br>
      C: <input id="data-c" value="2007-05-20"><br>
      D: <input id="data-d" value="2007-05-20"><br>
      X: <input id="data-x" style="WIDTH: 171px; HEIGHT: 22px" size="15" value="2007-08-20"><br>
      Wynik: <input id="data-result"> <input onclick="oblicz()" type="button" value="Oblicz"><br>
      <br>
      </form>
      </body>
      </html>

      Niektórych boardowiczów uważam za idiotów i
      oni o tym wiedzą.

    
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL