lovefool
17.01.2004, 11:25:46
Witam!
Mam taki oto problem...
Na jednej stronie jest kilka formuł <form> w tym są textarea i inne duperele ...
I wszystko jest ok dopóki nie wprowadze drugiej takiej formuły! Bo jeśli jedną z nich zostawie pustą to do bazy sql wyśle mi puste pole! A tego nie chce! To utrudnia życie gdyż żeby wszystko było ok musze wypełnić wszystkie pola i dopiero wtedy kliknąć w jakikolwiek submit... Jak je oddzielić od siebie ? tzn jak zrobić zeby wypełniając jeden <form> nie mieszać sie w drugi ... ?
pozdrawiam!
Witam.
Przed zapisaniem do bazy sprawdzaj czy zostało wypełnione pole.
[php:1:5a50c61cd0]<?php
if($_POST["nazwapola"]){
// rob cos
}
?>[/php:1:5a50c61cd0]
I tak z każdym polem, które może bądź nie może zostać wypełnione ...
bumelang
17.01.2004, 13:06:54
Zrób w każdym formularzu pole typu <input type="hidden" name="ktory-formularz" value="1"/> i wtedy sprawdzaj czy dostałeś formularz 1 czy 2 czy itd.
A co do tego, co napisał id4 - nie wiem, kto z nas dobrze zrozumiał problem lovefool'a, ale w każdym razie powinno się to raczej robić:
[php:1:e4dd9b6cba]<?php
if(isset($_POST["nazwapola"]))
{
// rób coś
}
?>[/php:1:e4dd9b6cba]
bo w przeciwnym wypadku co jeśli user wpisał w polu 0.
Bora
17.01.2004, 15:05:03
Z empty bezpieczniej
[php:1:892ea0eb66]<?php
if(!empty($_POST["nazwapola"]))
{
// rób coś
}
?>[/php:1:892ea0eb66]
lovefool
20.01.2004, 22:46:09
heh......no ok....teraz potrafie sprawdzać czy zostały wypełnione formularze:) Ale co zrobić gdy pole typu textarea jest puste i żeby nie wpisywało (do bazy mysql - to mało ważne, ale chodzi nie o INSERT tylko UPDATE a wtedy puste pola potrafią zastąpić wcześńiej zapisane i wten sposób mam wałka) żadnych zmiennych ?!
pozdrawiam
patrycjusz
20.01.2004, 23:32:00
Kod
<form action="costam.php" name="form1" method="post">
<input type="text" name="form1_cos1">
</form>
<form action="costam.php" name="form2" method="post">
<input type="text" name="form2_cos2">
</form>
i php
[php:1:f386a00b1b]<?php
if(!empty($_POST['form1_cos1']) && !empty($_POST['form2_cos2']))
{
// przetwarzasz dane
}
else
{
echo 'Wypełnij formularz';
}
?>[/php:1:f386a00b1b]
tyle moge pomóc...
prosiłbym o zkonkretyzowanie pytania... gdyż za bardzo nierozumiem o co ci chodzi....
kszychu
21.01.2004, 10:35:37
Cytat
Ale co zrobić gdy pole typu textarea jest puste ...
[php:1:584bd5e4cb]<?php
if($_POST['nazwa_pola_textarea'] != "")
// rob update
else
// nie rob update
?>[/php:1:584bd5e4cb]
O to chodziło?
lovefool
22.01.2004, 07:29:32
Kod
<form action="costam.php" name="form1" method="post">
<input type="text" name="form1_cos1">
</form>
<form action="costam.php" name="form2" method="post">
<input type="text" name="form2_cos2">
</form>
I dajmy na to, że form1 jest nie wypełniony a form2 tak...Więc chciałbym aby form2 został przesłany dalej a form1 został nietknięty. Można to załatwić tworząc wszystkie inne form w nowych oknach ale to dużo roboty a pozatym wiedziałbym na przyszłość... Ja już nie potrafie dokładniej wytłumaczyć
pozdraaawiam!
rzseattle
22.01.2004, 11:24:39
Cytat
Kod
<form action="costam.php" name="form1" method="post">
<input type="text" name="form1_cos1">
</form>
<form action="costam.php" name="form2" method="post">
<input type="text" name="form2_cos2">
</form>
I dajmy na to, że form1 jest nie wypełniony a form2 tak...Więc chciałbym aby form2 został przesłany dalej a form1 został nietknięty. Można to załatwić tworząc wszystkie inne form w nowych oknach ale to dużo roboty a pozatym wiedziałbym na przyszłość... Ja już nie potrafie dokładniej wytłumaczyć :D
pozdraaawiam!
Ke?
Wysylane jest tylko to co jest miedzy znacznikami <form></form> dla danego submita czyli zawsze jest wysylany tylko jeden formolarz. Nie wiem o co ci chodzi. Daj sobie print_r($_POST); to zobaczysz ze w tablicy znajduja sie zmienne z tylko jednego formularza.
lovefool
23.01.2004, 18:55:47
Heh.....a więc prosze....Co prawda aby sprawdzić trzebaby było stworzyć baze mysql ale taki oto kod nie działa...a raczej występuje ten problem który napisałem wyżej:
Kod
<FORM ACTION="dodaj.php" METHOD="POST" name="posta">
<INPUT TYPE="TEXT" NAME="profesor" SIZE="20">
<input type="submit" value="Dodaj" name="dodajprofesora">
</form>
<?
while ($row = mysql_fetch_array ($pokazprofesora)) {
echo "Trener: prof. ";
echo "<a href="#">";
echo $row["imie"];
echo "</a>";
}
?>
<br>
Grupa no. ?<br>
<form ACTION="dodaj.php" METHOD="POST" name="postb">
<INPUT TYPE="TEXT" NAME="numer" SIZE="2">
<input type="submit" value="Dodaj no. grupy" name="dodajgrupe" ><br></FORM>
</form>
Grupa
<?
while ($row = mysql_fetch_array ($pokazgrupe)) {
echo $row["szkola"];
}
?>
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.