Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]sprawdzanie pol
Forum PHP.pl > Forum > Przedszkole
gibonik
jezeli ktores pole jest puste to po nacisnieciu przycisku ma byc komunikat "wypełnij pola" (jezli nie wszystkie sa wypełnione to pamieta dane wpisane, i dopiero jak wszystko bedzie wypełnione to przejdzie do form2.php
a w moim wypadku i tak przechodzi do nastepnego formularza i nie wyswietla kom "wypełnij pola"

  1. <form action="form2.php" method="post">
  2.  
  3. <?
  4.  if(isset($_POST['tresc']) &&($_POST['tytul']=='1' )){
  5.    $_SESSION['tresc']==$_POST['tresc'];
  6.      if(($_SESSION['tresc']==' ') &&($_SESSION['tytul']=='1' )){
  7.      echo 'wypełnij pola';
  8.      }else{
  9.    if(($_SESSION['tresc']=='1' )&& ($_SESSION['tytul']=='1' ))
  10.    echo 'wysłano';}}
  11. echo'<input name="tresc" type="text" id="tresc" />';
  12. echo'<input name="tytul" type="text" id="tytul" />';
  13. echo'<input type="submit" name="Submit"  onclick="tresc" value="wyslij" />';
  14. ?>
trike
z tego co sie domyslam to
  1. <?php
  2. $_SESSION['tresc'] = $_POST['tresc']
  3. $_SESSION['tytul'] = $_POST['tytul']
  4. ?>

?
po co tyle razy wiec to sprawdzasz? W twoim przypadku przechodzi do nastepnego formularza gdy tresc jest '1' i tytul '1', wiec chyba latwiej bedzie z jednym warunkiem czy jest '1'. A zeby w polach formularza wyswietlilo cos to musisz to podac czyli w tagach input dodaj value="wypisz to co chcesz"
outsider
Sprobuj z empty:

Kod
if( empty($_POST['cos']) {

print 'Wypelnij cos!';

} else { ... }
gibonik
Cytat(trike @ 30.03.2009, 16:53:23 ) *
value="wypisz to co chcesz"

tylko jak to dodam to juz na samym poczatku mam w polu np $tresc
trike
jesli pierwszy raz jestes na formularzu to $_POST['tresc'] nie jest ustawione a co za tym idzie w twoim przypadku $_SESSION['tresc'] tez jest puste wiec jak ci moze cos tam wypisac? a jesli jestes kolejny raz juz no to musialbys sobie ustawiac jakas zmienna ktora ci podaje czy to jest poprawianie formularza czy wypelnianie na nowo
gibonik
mam tak, ale cos zle robie bo tego warunku nie uwzglednia
  1. <form action="form2.php" method="post">
  2.  
  3. <?
  4. if(isset($_POST['tresc']) &&($_POST['tytul'])){
  5.   $_SESSION['tresc']==$_POST['tresc'];
  6.   $_SESSION['tytul']==$_POST['tytul'];
  7.     if(($_SESSION['tresc']==" ")||($_SESSION['tytul']==" " )){
  8.     echo 'wypełnij brakujace pola';}
  9.    
  10.   echo 'wysłano';}
  11. ?>
  12. <input name="tresc" type="text" id="tresc" value="<? $_SESSION['tresc'];?>"/>
  13. <input name="tytul" type="text" id="tytul"  value="<? $_SESSION["tytul"];?>" />
  14. <input type="submit" name="Submit" value="wyslij" />
  15. </label>
  16. </form>
trike
chyba do $_SESSION['tresc'] chcesz przypisac $_POST['tresc'] a nie porownac? Zastosuj tylko jedno "="
gibonik
tak, porawiłam tylko co trzeba dodać do przycisku bo on dalej przepuszcza formularz dalej
trike
to mozna by to bylo jeszcze inaczej, zastosowac javascript. W tagi form wpisac
Kod
<form ... onSubmit="if (sprawdz(this)) return true; return false">

a funkcja sprawdzajaca np:
Kod
<script type="text/javascript">
// <![CDATA[
function sprawdz(formularz)
{
    for (i = 0; i < formularz.length; i++)
    {
        var pole = formularz.elements[i];
        if (pole.type == "text"  && pole.value == "")
        {
            alert("Aby przes³aæ formularz nale¿y wype³niæ wszystkie pola!");
            return false;
        }
    }
    return true;
}
// ]]>
</script>

i wtedy nie trzeba bawic sie z zapamietaniem tresci czy tez tytulu. Formularz nie powinien pojsc dalej a wpisy powinny zostac
gibonik
a jak te moje poprawić w php?
nexis
Cytat(gibonik @ 30.03.2009, 23:16:38 ) *
a jak te moje poprawić w php?

  1. <?php
  2. if (isset($_POST['submit'])) {
  3.   if (empty($_POST['tresc']) || empty($_POST['tytul'])) {
  4.      echo 'Wypełnij brakujące pola!';
  5.   } else {
  6.      echo 'Wysłano!';
  7.   }
  8. }
  9. ?>
  10. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  11.   <input id="tresc" name="tresc" type="text" value="<?php echo (isset($_POST['tresc'])) ? $_POST['tresc'] : ''; ?>"/>
  12.   <input id="tytul" name="tytul" type="text" value="<?php echo (isset($_POST['tytul'])) ? $_POST['tytul'] : ''; ?>" />
  13.   <input id="submit" name="submit" type="submit" value="wyslij" />
  14. </form>
gibonik
a mozesz mi wyjasnic co znaczy ? $_POST['tytul'] : ''; ten zapis.
i jeszcze pytanko jak to bedzie bo chce zrobić jak bedzie "wysłano" to
przejdzie do nastepnego formularza,

[quote name='nexis' date='30.03.2009, 23:55:30 ' post='591190']
[php]
if (isset($_POST['submit'])) {
if (empty($_POST['tresc']) || empty($_POST['tytul'])) {
echo 'Wypełnij brakujące pola!';
} else {
echo 'Wysłano!';
}
}
?>
slawny
  1. <?php
  2. $_POST['tytul'];
  3. ?>

pobranie wartosci pola tytul z formularza, który dane wysyła metodą post.

Przejscie do innego formularza:

header("Location: gdzies.php");

ale to na początku strony musisz dać
  1. <?php
  2. ?>
gibonik
jeszcze mam pytanko, jak bedzie z pomyslnym wysłaniem na 1 formularzu tylko jezeli "wysłano" to to wyswietla ten komunikat i pola juz nie trzymaja zmiennych
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.