Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz(przycisk) + Walidacja[JS] + [PHP] = Problem
Vanquish89
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.11.2009

Ostrzeżenie: (0%)
-----


Witam wszystkich, jest to mój pierwszy post więc proszę o wyrozumiałość. Otóż borykam się z tym problemem, że próbuję połączyć formularz z weryfikacją napisaną w JavaScript wypełnionych pól. W php mam napisane zapisywanie do pliku tekstowego i odczyt. I teraz w czym tkwi problem. W momencie gdy odświeżę stronę lub po prostu na nią wejdę już są dopisywane puste pola do pliku tekstowego i wyświetlane na stronie mimo że nie wcisnąłem przycisku do wysłania... Czy jest ktoś w stanie mi z tym pomóc? Poniżej zamieszczam kody poszczególnych sekcji, czyli przycisku formularza, walidacji w JS i zapisu do pliku w php.

Przycisk
CODE
<button onClick="validation()" type="submit" name="wyslij" value="Wyslij">Wyslij</button>


Walidacja w JS
CODE
<script language="JavaScript">
function validation ()
{
if (document.getElementById("imie").value == "")
<------>{
<------>alert ("Wpisz imie!");
<------>return false;
<------>}
if (document.getElementById("nazwisko").value =="")
<------>{
<------>alert ("Wpisz nazwisko!");
<------>return false;
<------>}
if (document.getElementById("telefon").value =="")
<------>{
<------>alert ("Wpisz telefon!");
<------>return false;
<------>}
if (document.getElementById("miesiac").value =="")
<------>{
<------>alert ("Wybierz miesiac!");
<------>return false;
<------>}
if (document.getElementById("dzien").value =="")
<------>{
<------>alert ("Podaj dzien!");
<------>return false;
<------>}
<------>else
<------>{
<------>document.wyslij.submit();
<------>return true;
<------>}
<------>
....
}

</script>


Zapis do pliku i odczyt na stronę
CODE
<?

$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$telefon = $_POST['telefon'];
$miesiac = $_POST['miesiac'];
$dzien = $_POST['dzien'];
$uwagi = $_POST['uwagi'];
$wyslij = $_POST['wyslij'];
if (isset($wyslij))
{
$plik = fopen('dane.txt', 'a');
fwrite ($plik, "Dane rezerwacji: ".$imie.", ".$nazwisko.", ".$telefon." w dniu: ".$dzien." ".$mie
fwrite ($plik, "Wyslales formularz dnia ".date("Y-m-d")." "." o godzinie ".date("H:i:s")."\n");
fclose($plik);
}
?>

<?
$wyniki = file ("dane.txt");
foreach ($wyniki as $element)
{
echo ($element."<br>");
}

?>


Jakby były jakieś niejasności to pytajcie. Bardzo mi zależy żeby to napisać bo jest to projekt do strony. Pozdrawiam.
Go to the top of the page
+Quote Post
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Myślę że wystarczy, jak za każdym razem przed zapisem sprawdzisz czy pola są niepuste.

Ten post edytował Blame 3.11.2009, 18:02:19
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Dziwne zachowanie... Kod jest napisany poprawnie. Spróbuj dla testów zamienić ten warunek:
  1. if (isset($wyslij)) {

Na np.
  1. if (!empty($_POST)) {

Możesz też spróbować, tuż przed samym warunkiem wstawić linijkę:
  1. var_dump($_POST);

I zobaczyć co w zmiennej piszczy (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Vanquish89
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.11.2009

Ostrzeżenie: (0%)
-----


Z tym już próbowałem:
  1. if (!empty($wyslij)) {


oczywiście po wejściu już nie wpisuje od razu do pliku, ale jak pola są puste i wcisnę "Wyślij" to pokazuje mi się okienko że dane pole jest puste, ale jak wezmę ok na tym alercie to tak i tak mi zapisuje puste pola do pliku...
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #5





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Kod
<button onClick="validation()" type="submit" name="wyslij" value="Wyslij">Wyslij</button>

Nie mam w tej chwili możliwości przetestowania czegokolwiek, ale dopisz return do onClick, czyli:
Kod
<button onClick="return validation()" type="submit" name="wyslij" value="Wyslij">Wyslij</button>


Ten post edytował Nattfarinn 3.11.2009, 21:02:58
Go to the top of the page
+Quote Post
Vanquish89
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.11.2009

Ostrzeżenie: (0%)
-----


Nattfarinn, dzięki za pomoc, return załatwiło sprawę (IMG:style_emoticons/default/smile.gif) Bardzo dziękuję (IMG:style_emoticons/default/smile.gif) Oczywiście leci pomógł (IMG:style_emoticons/default/smile.gif) Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 17:56