Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kilka <form> ale tylko jeden aktywny
Forum PHP.pl > Forum > PHP
lovefool
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!
id4
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
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
Z empty bezpieczniej

[php:1:892ea0eb66]<?php
if(!empty($_POST["nazwapola"]))
{
// rób coś
}
?>[/php:1:892ea0eb66]
lovefool
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
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
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
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ć biggrin.gif

pozdraaawiam!
rzseattle
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
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&nbsp;

<?

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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.