Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz graficzny
Forum PHP.pl > Forum > PHP
P4vlo
Witam,

W jaki sposób zrobić formularz, że po kliknięciu wyślij nie przekieruje do następnej strony a wyświetli na tej samej komunikat o braku jakiegoś komponentu lub o poprawnym wysłaniu, coś na wzór rejestracji na forum gdy czegoś nie podamy?
skowron-line
W formie odwołaj się do tego samego pliku.
  1. <form action="index.php" method="post">
  2. <input type="text" name="example">
  3. <input type="submit" name="submit" value="click">
  4. </form>

a później

  1. if( isset( $_POST[ 'submit' ] ))
  2. {
  3. if(empty( $_POST[ 'example' ] ))
  4. {
  5. echo 'error';
  6. }
  7. }
Boost
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  2. <input type="text" name="nazwa_inputa"><br>
  3. <input type="text" name="nazwa_inputa2"><br>
  4. <input type="submit" value="Dalej" name="wyslij">
  5. </form>
  6.  
  7. <?php
  8. if($_POST['wyslij']) {
  9. if(!$_POST['nazwa_inputa']) {
  10. echo "Komunikat błędu";
  11. }
  12. if(!$_POST['nazwa_inputa2']) {
  13. echo "Komunikat błędu z inputa 2giego";
  14. }
  15. }
  16. ?>


Pisane z palca
P4vlo
A coś na wzór tego http://www.ec1lodz.pl/kontakt.php ?
Boost
aaa
ty liczysz że my zrobimy wszystko za ciebie ?
ja i skowron-line już wystarczająco dużo daliśmy ci pomocy
teraz tylko : www.kurshtml.boo.pl
P4vlo
Nie chodzi mi o odwalenie tylko o nakierowanie, czy muszę w php wyświetlić połowę dokumentu do form action a potem w zależności od poprawności kolor czerwony tekstu lub zwykły?
black.old.cat
  1. <?php
  2. $temat = 'red';
  3. $tresc = 'red';
  4. $podpis = 'red';
  5.  
  6. if(isset($_POST['temat']))
  7. {
  8. // Sprawdzenie czy wprowadzone dane sa poprawne. Jezeli tak to ustawiamy: $temat = 'green';
  9. }
  10.  
  11. if(isset($_POST['tresc']))
  12. {
  13. // Sprawdzenie czy wprowadzone dane sa poprawne. Jezeli tak to ustawiamy: $tresc = 'green';
  14. }
  15.  
  16. if(isset($_POST['podpis']))
  17. {
  18. // Sprawdzenie czy wprowadzone dane sa poprawne. Jezeli tak to ustawiamy: $podpis = 'green';
  19. }
  20.  
  21. if($temat == 'green' && $tresc == 'green' && $podpis == 'green')
  22. {
  23. // Wyslij wiadomosc.
  24. echo 'Wiadomosc zostala wyslana.';
  25. }
  26. else
  27. {
  28. $temat_ = $_POST['temat'];
  29. $tresc_ = $_POST['tresc'];
  30. $podpis_ = $_POST['podpis'];
  31.  
  32. // Pozamieniaj zmienne tak zebys mogl je wyswietlic na stronie.
  33.  
  34. echo <<<end
  35. <pre>
  36. <form action="" method="post">
  37. <font color=$temat > temat </font><input type="text" name="temat" value="$temat_"><br>
  38. <font color=$tresc > tresc </font><input type="text" name="tresc" value="$tresc_"><br>
  39. <font color=$podpis> podpis </font><input type="text" name="podpis" value="$podpis_"><br>
  40. <input type="submit" value="Wyslij">
  41. </form>
  42. </pre>
  43. end;
  44. }
  45. ?>
bloodscreen
Nie wiem czy o to Tobie chodzi ale jeżeli nie chcesz żeby po kliknięciu przekierowało Cię na inną stronę to wystarczy ze action w formie zostawisz pusty np:

  1. <form action="" method="post">
  2. <input type="text" name="x">
  3. <input type="submit" value="wyślij">
  4. </form>


Nie wiem czy o to chodzi ale tak to zrozumiałem blinksmiley.gif
P4vlo
Chodziło mi o to co napisał @black.old.cat . Jeszcze jedno, w czym może być problem jeżeli 3 dni temu działała funkcja mail a teraz nie działa i nie wyświetla żadnych błędów?
black.old.cat
Jezeli twoja strona "stoi" na jednym z darmowych serwerow, to funkcja mail mogla zostac zablokowana, badz zostaly na nia nalozone jakies ograniczenia (np. wysylanie tylko 10 maili w ciagu godziny).
Jezeli natomiast masz wlasny serwer, to moze zmieniales cos ostatnio w ustawieniach ?
Sprawdz na innym serwerze ta funkcje dziala (tylko wczesniej upewnij sie ze nie ma na nim zablokowanej tej funkcji), jezeli nadal nie bedzie dzialala to sprawdz czy w kodzie na pewno nie ma bledow.

Jezeli nie wyswietla sie zaden komunikat o bledzie to przy sprawdzaniu kodu zwroc szczegolna uwage na instrukcje ktorych bledy sa tlumione.
Dla przypomnienia, do tlumienia bledow uzywany jest operator: @
P4vlo
Kod
<?PHP
if (mail("adres@adres.adres.adres", "temat", "tresc")) {
        echo "Wiadomość wysłana!";
      } else {
        echo "Błąd podczas wysyłania wiadomości!";
      }
mail("adres@adres.adres.adres", "temat", "tresc");
>?


Mój skrypt wygląda jak wyżej. Parę dni temu wszystko działało i w pewnym momencie przestało, nic nie zmieniałem. Mam wykupiony serwer.
black.old.cat
Zaloz nowy temat i tam zadaj pytanie jeszcze raz - offtop
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.