Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sprawdzanie wypełnienia formularza
Forum PHP.pl > Forum > Przedszkole
Himp
Sprawdzam to w taki sposób
  1. <?php
  2. if(!empty($add_text))
  3. {
  4. if(empty($add_text) or empty($add_title) or empty($add_email) or empty($add_nick))
  5. {
  6. ?>

Gdy zostawie puste pote tekst strona się tylko przeładowuje. Natomiast gdy dodam else i wpisze w nim wyświetlanie błędu. Komunikat jest wyświetlany cały czas. Jak zrobić tak, żeby wartość zmiennej $add_text była sprawdzana dopiero po kliknięciu na wyslij lub jak inaczej to sprawdzać?
Cysiaczek
Możesz troszkę jaśniej?
Gość
Nie rozumiem, po co zagniezdzasz 2 ify ...
Moze dlatego, ze nie rozumiem co chcesz zrobic.
Najprostsze sprawdzenie formularza mozesz zrobic np. tak:

  1. <?php
  2. $add_test=$_POST['add_text']; 
  3. if ($add_text !="" ) {
  4. blablabla } 
  5. else { 
  6. echo 'Nie wypelniono pol'; }
  7. ?>
kg
Kod

  1. <?php
  2. if(empty($add_text) or empty($add_title) or empty($add_email) or empty($add_nick))
  3. ?>


wykonuje się tylko w przypadku, gdy zmienna $add_text nie jest pusta, więc jeśli było coś w niej wpisane to sprawdzanie pozostałych pól, co prawdopodobnie chcesz zrobić, nie jest w ogóle wykonywane.

Cytat
Jak zrobić tak, żeby wartość zmiennej $add_text była sprawdzana dopiero po kliknięciu na wyslij lub jak inaczej to sprawdzać?

Domyślam się że chodzi o to żeby część kodu (a konkretnie sprawdzanie pól) wykonywała się tylko w przypadku wysłania formularza, a nie podczas jego wyświetlania. W takim przypadku najprościej zrobić to w taki sposób:

  1. <?php
  2. if (!empty($_POST['submit']) {
  3. // tutaj sprawdzanie pozostalych zmiennych z tablicy $_POST
  4. }
  5. ?>


gdzie 'submit' jest nazwą przycisku którego używasz do wysłania formularza (<input TYPE="submit" NAME="submit" VALUE="Wyślij formularz">).
Himp
No tak dzięki smile.gif Ale jeśli zrobię tak...
  1. <?php
  2. if (!empty($_POST['submit']) {
  3. // tutaj sprawdzanie pozostalych zmiennych z tablicy $_POST
  4. }
  5. ?>

i kliknę na wyślij (nie wpisując nic do formularza) to zmienna
Cytat
$_POST['submit']
będzie pusta, a co za tym idzie nie wyświetli sie komunikat 'wypełnij wszytskie pola' smile.gif Natomiast dodająć else jestem skazany na wieczne wyswietlanie się komunikatu biggrin.gif
KG-
Mylisz się, w tym przypadku zmienna $_POST['submit'] będzie zawsze ustawiona po kliknięciu na przycisk, nawet jeśli cały formularz jest pusty (pod warunkiem że celem formularza jest ten plik i że nazwa przycisku ma wartość (w tym akurat przykładzie) "submit").
Himp
A jednak miałeś rację smile.gif Wielkie dzięki smile.gif
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.