Witam.
Wiem, że podobne tematy były już na forum, ale nie znalazłem tego co mi jest potrzebne lub nie umiem szukać

. Chodzi mi o to, że mam formularz w HTML i przekazuje z niego dane do skryptu PHP. Później ten skrypt sobie coś tam oblicza. To ta łatwa część (chociaż dopiero się uczę PHP). Następnie mam drugi formularz gdzie użytkownik wybiera czy dalej kontunuować obliczenia czy wrócić do poprzedniego okna bo np. się machnął przy wprowadzaniu danych.
Teraz chcę zrobić coś takiego, żeby po wybraniu opcji dalej wyniki obliczeń mogły być użyte w tym samym skrypcie i w tym momencie utknąłem. Więc jeśli ktoś ma jakiś pomysł będę bardzo wdzięczny.
Poniżej zamieszczam kod który stworzyłem (przy wykorzystaniu pomocy wiadomości z netu):
<?php
//wczytanie danych z formularza
if (!empty($_POST["day1"])) {$d1 = $_POST["day1"];} if (!empty($_POST['month1'])) {$m1 = $_POST['month1'];} if (!empty($_POST['year1'])) {$y1 = $_POST['year1'];}
if (!empty($_POST['day2'])) {$d2 = $_POST['day2'];} if (!empty($_POST['month2'])) {$m2 = $_POST['month2'];} if (!empty($_POST['year2'])) {$y2 = $_POST['year2'];} //sprawdzenie warunków poczatkowych
if ((!$d1) || (!$m1) || (!$y1)) {echo "Podaj dzien wjazdu";} elseif (!$d2 || !$m2 || !$y2) {echo "Podaj dzien wyjazdu";} elseif (($y1 > $y2)||($m1>$m2)||($d1>$d2)) {echo "Data wyjazdu musi byc taka sama lub pozniejsza";} else
$suma = $suma+licz($d1,$m1,$y1,$d2,$m2,$y2);
echo "<p>Uplynelo ", $suma, " dni.</p>"; function licz($d1,$m1,$y1,$d2,$m2,$y2)
{
// Funkcja zwraca liczbe dni miedzy dwoma przekazanymi datami.
function count_days($a, $b)
{
$suma=0;
$dd = 0;
$rok = 0;
// Najpierw nalezy przeksztalcic daty na czesci skladowe:
// Funkcja sprawdza, czy okreslony rok jest przestepny, czy nie:
function is_leap_year($y)
{
// Jesli rok dzieli sie przez 4, ale nie dzieli sie przez 100 lub dzieli sie przez
400:
return ((($y % 4) == 0) && ((($y % 100) != 0) || (($y % 400) == 0)));
}
// Sprawdzenie, czy lata z podanego zakresu sa przestepne:
function sprawdz_rok($a, $b)
{
$dd = 0;
foreach(range($a,$b) as $i) {
if (is_leap_year($i))
{
$dd = $dd + 1;
}
}
return $dd;
}
if ((is_leap_year($b_dt['year']) || is_leap_year($a_dt['year'])) && (($b_dt['mon'] >=2 || $a_dt['mon'] >=2) && ($a_dt['mday']>28 || $b_dt['mday']>28)))
{
$rok = sprawdz_rok($b_dt['year'], $a_dt['year']);
}
// Odtworzenie znaczników czasu z wykorzystaniem poludnia kazdego dnia.
// Dokladny czas nie ma znaczenia, ale musi to byc ta sama godzina w kazdym dniu.
$a_new = mktime(12
, 0
, 0
, $a_dt['mon'], $a_dt['mday'], $a_dt['year']); $b_new = mktime(12
, 0
, 0
, $b_dt['mon'], $b_dt['mday'], $b_dt['year']); // Odjecie dwóch liczb i podzielenie przez liczbe sekund przypadajaca na dzien.
// Zaokraglenie wyniku, poniewaz przekroczenie granicy zmiany czasu z letniego na
zimowy (lub odwrotnie)
// spowoduje róznice w czasie o godzine lub dwie.
return round(abs($a_new - $b_new) / 86400
)+1
+$rok; }
$suma=$suma+count_days($date2, $date1);
//if (!empty($_POST["yes"])) {licz($d1,$m1,$y1,$d2,$m2,$y2);}
//if (!empty($_POST['no'])) break;
return $suma;
}
?>
<form method="post" action="dni.htm">
Obliczyc ponownie?
<p>
<label>
<input type="radio" name="ponownie" value="1">
Tak</label>
<br>
<label>
<input type="radio" name="ponownie" value="0" checked="checked">
Nie</label>
<br>
</p>
<input type=submit value=Wyslij><br>
</form>
<?php
//wczytanie danych z formularza
if (!empty($_POST['ponownie'][0
])) {$y = $_POST['ponownie'][0
];} if (!empty($_POST['ponownie'][1
])) {$n = $_POST['ponownie'][1
];}
?>
oraz formularz html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<form action="licz_dni.php" method="POST"> Dzien wjazdu:
Dzień:
<input type=text name=day1 maxsize=2>Miesiąc :
<input type=text name=month1 maxsize=2>Rok :
<input type=text name=year1 maxsize=4><br><br>Dzien wyjazdu:
Dzień:
<input type=text name=day2 maxsize=2>Miesiąc :
<input type=text name=month2 maxsize=2>Rok :
<input type=text name=year2 maxsize=4><br><br><input type=submit value=Oblicz><br>
Ten post edytował przemo79 5.08.2007, 08:48:39