Skocz do zawartości

Myk z datą i formularzem


apollan

Rekomendowane odpowiedzi

Cześć.

Potrzebuję wskazówek, czy tez gotowego kodu formularza w którym wybiera się datę. Niby nic trudnego napisać takowy formularz, ale:

-musi być max 2 lata do przodu,

-codziennie musi być aktualizacja kolejnej daty na jutrzejszą(brak możliwości wyboru daty przeszłej i teraźniejszej),

-coś zaradzić z różną liczbą dni w poszczególnych miesiącach.

-tylko rok, miesiac i dzień.

Zadanie na pozór łatwe(może i takie jest, bynajmniej nie dla mnie :P ).

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Poszukaj stron biur podróży prawie każda ma coś takiego napisane w JS...

Lub: https://www.dynarch.com/projects/calendar/

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Sztuczna inteligencja (AI, artificial intelligence) to szeroka klasyfikacja przetwarzania danych. Machine Learning to technika przetwarzania danych, która umożliwia wykorzystanie przez komputery istniejących danych w celu przewidywania przyszłych zachowań, rezultatów i trendów. Drugie podejście to uczenie maszynowe (machine learning), czyli technika nauki o danych.

Odnośnik do komentarza
Udostępnij na innych stronach

Cześć.

Potrzebuję wskazówek, czy tez gotowego kodu formularza w którym wybiera się datę. Niby nic trudnego napisać takowy formularz,

Nic tudnego, sprobuj sam:

Formularz musi przeladowywac strone tak zeby kazde z pol aktualizowalo sie w zaleznosci od roku i miesiaca wybranego poprzednio (polecam AJAX)

ale na poczatek zrob to normalnie - przyda sie javascript do przeladowywania:

<script type="text/javascript">
function reload(rok,miesiac)
{
location.href='twojplik.php?rok='+rok+'&miesiac='+miesiac;
}
</script>

//------------ moglem cos pomieszac pisze z pamieci - dla zasugerowania rozwiazania

Proponowalbym zaczac od roku:

ale:

-musi być max 2 lata do przodu,

//------------- Data 2 lata do przodu od dzis
$twoYearsAhead  = mktime (0,0,0,date("m"),  date("d"),  date("Y")+2);
$maxYear = date("Y, $twoYearsAhead);
<select name="rok " onChange="reload(this.value,'')">
//------------------ uzwam onchange gdyz onclick w kazdym option nie dziala w IE
for ($i=date("Y"); $i <= $maxYear; $i++)
{
<option value=$i > $i </option>
}
</select>

Po wybraniu roku przeladuje sie nam strona, dlatego warto aby w polu select = rok pokazany zostal wybrany rok :

//----- tym zastapilbym zawartosc powyzszego for
if ($_GET[rok]==$i)
<option SELECTED value=$i> $i <option>
else
<option value=$i > $i </option>

-codziennie musi być aktualizacja kolejnej daty na jutrzejszą(brak możliwości wyboru daty przeszłej i teraźniejszej),

no to aktualizacje zapewni nam data z serwera pobierana za pomoca php, natomiast sprawdzanie daty przeszlej i terazniejszej masz w for :

//----------- dla miesiaca 
<select name="miesiac" onChange="reload('<?=$_GET[rok];?>',this.value)">
for ($i=date("m"); $i <= 12; $i++)
{
if ($_GET[miesiac]==$i)
<option SELECTED value=$i> $i <option>
else
<option value=$i > $i </option>
}
</select>

-coś zaradzić z różną liczbą dni w poszczególnych miesiącach.

no i tu znow z pomoca rusza nam php - polecam zagladanie do manuala :

funkcja date - parametr "t" - liczba dni w danym miesiacu

dla wybranego miesiaca bedzie to tak :

$iloscdni = date("t", mktime (0,0,0, $_GET[miesiac] ,  date("d"),  $_GET[rok]));

mktime - data w formacie unix`owym (chyba tak to sie nazywa) - czyli w postaci liczby - idealna do porownywania operatorami i formatowania w innych funckcjach

tak wiec majac juz ilosc dni zastosuj znana Ci juz petle for :

<select name="dzien" onChange="reload('<?=$_GET[rok];?>','<?=$_GET[miesiac];?>')">
for ($i=date("d"); $i <= $iloscdni; $i++)
{
if ($_GET[dzien]==$i)
<option SELECTED value=$i> $i <option>
else
<option value=$i > $i </option>
}
</select>

no i teraz juz mozesz za pomoca POST - z formularza przeslac date dalej:

$_POST[rok] $_POST[miesiac] $_POST[dzien]

-tylko rok, miesiac i dzień.

Zadanie na pozór łatwe(może i takie jest, bynajmniej nie dla mnie :P ).

Pozdrawiam

Na pozor latwe - zeby zrobic trzeba troche pokombinowac,

mam nadzieje ze chociaz troche Ci podpowiedzialem - a moj pomysl na rozwiazanie okaze sie przydatny

I przepraszam za ewentualne bledy - nie jest to kod do kopiowania - tylko do pokazania rozwiazania

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności