Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Komunikat po wysłaniu formularza
barthezz
post 1.03.2014, 22:24:17
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.12.2013

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


Witam.
Otóż jestem na razie laikiem jesli chodzi o PHP, ale na początku robię coś łatwego. Mam oto taki formularz:
  1. <form method="POST" action="sendform.php">
  2. <p>Podaj imię pierwszego gracza: </p><input type="text" name="pole1" id="pole"/>
  3. <p>Podaj imię drugiego gracza: </p><input type="text" name="pole2" id="pole"/>
  4. <input type="submit" name="submit" id="submit" value="Wyślij"/>
  5. </form>


Chcę, aby wyskakiwał komunikat wtedy kiedy pola nie są uzupełnione. Kod:
  1. <?php
  2. if(empty($_POST['pole1']) || empty($_POST['pole2'])) {
  3. echo "<script language='javascript' type='text/javascript'>alert('Proszę uzupelnić puste pola!'); </script>";}
  4. ?>


Przejdę do sedna. Jeżeli w action dam index.php, czyli pierwotną stronę gdzie formularz jest to komunikat pojawia się od razu po wejściu na stronę. Nie trzeba nawet klikać w wyślij. Natomiast jeżeli wstawie w action odzielny plik (tutaj: sendform.php) to działa, ale jeżeli pola są wypełnione to nadal zostaje formularz na stronie. Chciałbym uzyskać taki efekt, aby po poprawnym wypelnieniu formularza przechodziło do strony przeznaczonej na dane dla formularza (inaczej wygląda). Jeżeli nie zrozumiecie co mam na myśli to prześlę screeny, albo sam plik ze stroną i sami zobaczycie.

Pozdrawiam.

Ten post edytował barthezz 2.03.2014, 19:43:38
Go to the top of the page
+Quote Post
_Borys_
post 1.03.2014, 22:52:58
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


  1. <form method="POST" action="index.php">

To przed wyświetleniem formularza
  1. <?php
  2. if(empty($_POST['pole1']) || empty($_POST['pole2'])){
  3. echo "<script language='javascript' type='text/javascript'>alert('Proszę uzupelnić puste pola!'); </script>";
  4. }
  5. else{
  6. header('Location: sendform.php');
  7. }
  8.  
  9. ?>


Ten post edytował _Borys_ 1.03.2014, 22:58:06
Go to the top of the page
+Quote Post
barthezz
post 1.03.2014, 23:12:46
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.12.2013

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


Idzie zaradzić temu, aby przy pierwszym wejsciu na stronę od razu komunikat się nie pojawiał? Przekierowywanie działa świetnie.

//EDIT: Tylko jest mały problem. Skoro podałem w action - index.php to czy on nie będzie tym, który będzie odbierał dane np. to co się znajduje w $_POST['pole1']? Jak więc użyć tych zmiennych w sendform.php?

Ten post edytował barthezz 1.03.2014, 23:15:03
Go to the top of the page
+Quote Post
_Borys_
post 1.03.2014, 23:47:45
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


No tak, nie zwróciłem uwagi. Można przekazać poprzez
  1. header('Location: sendform.php?pole1='.$_POST['pole1'].'&pole2='.$_POST['pole2']);

i potem sprawdzać w sendform.php $_GET['pole1'] itd.
Ale można też includować sendform.php do index.php
  1. if(empty($_POST['pole1']) || empty($_POST['pole2'])){
  2. // tworzenie index.php
  3. // trzeba też dodać ukryty input na przykład aby nie wyskakiwał alert po pierwszym wejściu na stronę, ustawić jakieś value w nim
  4. // gdzieś pomiędzy warunek
  5. if(!empty($_POST['input_name'])){
  6. echo "<script language='javascript' type='text/javascript'>alert('Proszę uzupelnić puste pola!'); </script>";
  7. }
  8. // dalsza część index.php
  9. }
  10. else{
  11. // include albo tworzenie sendform.php
  12. }


Ten post edytował _Borys_ 1.03.2014, 23:54:22
Go to the top of the page
+Quote Post
barthezz
post 1.03.2014, 23:53:43
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.12.2013

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


Działa jak należy, dziękuję smile.gif W razie problemów - odezwę się.
Go to the top of the page
+Quote Post
Kshyhoo
post 2.03.2014, 09:00:49
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przenoszę do Przedszkola.


--------------------
Go to the top of the page
+Quote Post
barthezz
post 2.03.2014, 10:45:17
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.12.2013

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


Kolejny problem, tym razem z ciasteczkami.

  1. <form method="POST" action="sendform.php"/>
  2. <p>
  3. <span style="float:left">Podaj liczbę: <input type="text" name="g1" id="pole"/></span>
  4. <span style="float:right">Podaj liczbę: <input type="text" name="g2" id="pole"/></span>
  5. </p>
  6. <input type="submit" name="submit" id="submit" value="Graj!"/>
  7. <input type="hidden" name="verify" value="TRUE"/>
  8. </form>

  1. <?php
  2. if(!isset($_POST['verify'])) {
  3. $w=rand(1,6);
  4. setcookie('gra_wynik',$w);
  5. setcookie('t_g1',0);
  6. setcookie('t_g2',0);}
  7. else {
  8. if(($_COOKIE['gra_wynik']!=$_POST['g1']) && ($_COOKIE['gra_wynik']!=$_POST['g2'])) {
  9. echo 'Nikt nie trafił';}
  10. elseif($_COOKIE['gra_wynik']==$_POST['g1']) {
  11. $t_g1=$_COOKIE['t_g1']+1;}
  12. elseif($_COOKIE['gra_wynik']==$_POST['g2']) {
  13. $t_g2=$_COOKIE['t_g2']+1;}
  14. print_r($_COOKIE);
  15. }
  16. ?>


Jak to ma działać? Otoż jest dwóch graczy. Losowana jest liczba i trzeba trafić prawidłową. Jeżeli dany gracz trafi liczbę, liczona jest liczba trafień. Niestety skrypt nie zna zmiennych g1, g2 oraz nie podlicza poprawnych odpowiedzi po wciśnięciu przycisku 'Graj!'. O ciasteczkach zacząłem dzisiaj czytać i nie za bardzo wiem dlaczego tak jest ;/ Jakieś nakierowanie poproszę wink.gif

//EDIT: Chyba nie do końca warunki są poprawne..

Ten post edytował barthezz 2.03.2014, 16:14:54
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2024 - 16:33