Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
Jeśli pole z formlarza puste to...
|
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
Jeśli pole z formlarza puste to... to nie chce dodawać całego wpisu. Skrypt na bazie mysql. Czy ktoś jest w stanie poprawić tak skrypt, żeby w momencie gdy dane pole nie jest wypełniane, do bazy zapisało się jako tekst: " Nie podano danych".
Oto skrypt:
Kod: $ksywaqq = addslashes(htmlspecialchars ($_POST['ksywa']));
$wwwqq = addslashes(htmlspecialchars ($_POST['www']));
$emailqq = addslashes(htmlspecialchars ($_POST['email']));
$ggqq = addslashes(htmlspecialchars ($_POST['gg']));
$trescqq = addslashes(htmlspecialchars ($_POST['tresc']));
{ //skomplikowanie
echo '<FORM METHOD=POST action="?go=guest_book_save">';
echo '<INPUT TYPE="hidden" NAME="action" VALUE="add"><TABLE>';
echo '<TR><TD>Ksywa:</TD><TD><INPUT TYPE="text" NAME="ksywa"></TD></TR>';
echo '<TR><TD>Www:</TD><TD><INPUT TYPE="text" NAME="www"></TD></TR>';
echo '<TR><TD>Email:</TD><TD><INPUT TYPE="text" NAME="email"></TD></TR>';
echo '<TR><TD>GaduGadu:</TD><TD><INPUT TYPE="text" NAME="gg"></TD></TR>';
echo '<TR><TD>Tresc:</TD><TD><textarea cols="40" rows="10" NAME="tresc"></textarea>';
echo '<TR><TD></TD><TD align=\"right\"><INPUT TYPE="submit" VALUE="Dodaj"></td></tr>';
echo '</TABLE>';
echo '</FORM>';
}
To na przykładzie wycinek formularza księgi gości, skrypt można zobaczyć pod adresem:
Kod: http://www.djtinware.netii.net/?go=guest_book
Prosiłbym o poprawienie kodu, gdyż sam nie jestem w stanie, bo niewiem o co chodzi... Proszę o pomoc
Liczba postów: 1,054
Liczba wątków: 0
Dołączył: 28-05-2009
Reputacja:
22
Tam gdzieś musi być if, a ten wycinek kodu nam nic nie mówi. Musisz dać więcej. ;]
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
21-07-2009, 19:02
(Ten post był ostatnio modyfikowany: 21-07-2009, 19:10 przez tinware.)
Na stronie jesli link dodaj wpis, który zaprowadza nas do: ?go=guest_book_add
i to właśnie jego zawartość:
Kod: if ($_GET['go'] == 'guest_book_add') {
echo "<b>Guest Book / Add:</b><br><br><br>";
$ksywaqq = addslashes(htmlspecialchars ($_POST['ksywa']));
$wwwqq = addslashes(htmlspecialchars ($_POST['www']));
$emailqq = addslashes(htmlspecialchars ($_POST['email']));
$ggqq = addslashes(htmlspecialchars ($_POST['gg']));
$trescqq = addslashes(htmlspecialchars ($_POST['tresc']));
{ //skomplikowanie
echo '<FORM METHOD=POST action="?go=guest_book_save">';
echo '<INPUT TYPE="hidden" NAME="action" VALUE="add"><TABLE>';
echo '<TR><TD>Ksywa:</TD><TD><INPUT TYPE="text" NAME="ksywa"></TD></TR>';
echo '<TR><TD>Www:</TD><TD><INPUT TYPE="text" NAME="www"></TD></TR>';
echo '<TR><TD>Email:</TD><TD><INPUT TYPE="text" NAME="email"></TD></TR>';
echo '<TR><TD>GaduGadu:</TD><TD><INPUT TYPE="text" NAME="gg"></TD></TR>';
echo '<TR><TD>Tresc:</TD><TD><textarea cols="40" rows="10" NAME="tresc"></textarea>';
echo '<TR><TD></TD><TD align=\"right\"><INPUT TYPE="submit" VALUE="Dodaj"></td></tr>';
echo '</TABLE>';
echo '</FORM>';
}
}
Zapisywanie odbywa się pod adresem: ?go=guest_book_save a jego kod to:
Kod: if ($_GET['go'] == 'guest_book_save') {
echo "<b>Guest Book / Add / Save:</b><br><br><br>";
$ksywaqq = addslashes(htmlspecialchars ($_POST['ksywa']));
$wwwqq = addslashes(htmlspecialchars ($_POST['www']));
$emailqq = addslashes(htmlspecialchars ($_POST['email']));
$ggqq = addslashes(htmlspecialchars ($_POST['gg']));
$trescqq = addslashes(htmlspecialchars ($_POST['tresc']));
if ($_POST['action'] == 'add') { //dodawanie rekordu
if ($ksywaqq && $wwwqq && $emailqq && $ggqq && $trescqq) {
$query = "INSERT INTO Guest_Book (ksywa, www, email, gg, ";
$query .= "tresc, data) VALUES ('$ksywaqq', '$wwwqq', '$emailqq', '$ggqq', '$trescqq', ".
"now());";
$wynik = mysql_query ($query);
}
} elseif ($_POST['action'] == 'popraw') { //poprawienie rekordu
if ($ksywaqq && $wwwqq && $emailqq && $ggqq && $trescqq) {
$query = "UPDATE Guest_Book SET ksywa='$ksywaqq',www='$wwwqq',email='$emailqq',gg=";
$query .= "'$ggqq',tresc='$trescqq' WHERE
nr='".$_POST['id']."';";
$wynik = mysql_query ($query);
}
}
echo "<meta http-equiv=\"Refresh\" content=\"1; url=?go=guest_book\" />Dodaje...";
}
I tutaj po sekundzie czyli już po zapisaniu jestesmy zawracani znowu na wyswietlanie wpisów. Oczywiście jakieś 1000 linijek przed mamy include, który łączy nas z baza mysql
Skrypt działa bez zarzutnie, ale chce dodać do niego tą możliwość, że jeśli nie wypełnia sie danego pola w formularzu, na stronie pojawi się napis: Nie podano danych tego pola, oczywiscie cala reszta sie doda oprocz tego pola (zamiast niego ten napis). I tak chce zastosować do wszystkich pól...
O ile dobrze wiem polega to na tym ze np.
Kod: if // cos tam, cos tam. jesli nie podasz pola to...
{
echo "brak danych"; // pojawi sie ten napis
}
// lub
echo '<TR><TD>Ksywa:</TD><TD><INPUT TYPE="text" NAME="ksywa"></TD></TR>'; // jak podasz to doda sie to
Liczba postów: 1,054
Liczba wątków: 0
Dołączył: 28-05-2009
Reputacja:
22
21-07-2009, 19:22
(Ten post był ostatnio modyfikowany: 21-07-2009, 19:26 przez KowR.)
Kod: if(!empty($_POST['ksywka']) && !empty($_POST['www']) && !empty($_POST['email']) && !empty($_POST['gg']) && !empty($_POST['tresc'])) {
// wszystko co ma się dziać, np. sprawdzenie poprawności tych wpisanych pól, zapisanie itd.
} else {
echo 'wypełnij pola!';
}
Powinno działać.
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
21-07-2009, 20:02
(Ten post był ostatnio modyfikowany: 21-07-2009, 20:04 przez tinware.)
Yhym to jest kod na to aby wypelnic koniecznie wszystkie pola.
Ale ja potrzebuje bardziej kodu, ktory jesli dane pole nie zostanie wypelnione to skrypt je pominie
a w chwili obecnej podczas nie podania jakiego kolwiek z pola wpis nie zostaje wogole dodany.
Twoj kod mi sie przyda bo zrobie pola obowiazkowe (ksywa, tresc) i nie obowiazkowe (email, gg), ale nie kazdy wpisujac sie podaje email i gg np. a taki wpis wtedy nie zostaje dodawany, a powinien sie dodac poprostu bez pol emaila i numeru gg
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
Przy zapisie pola nieobowiązkowe zamień z $_POST['gg'] na zmienne np. $nr_gg.
Zrób warunek że jeśli $_POST['gg'] jest pusty to $nr_gg='brak danych' a jak niepusty to $nr_gg= $_POST['gg']
Liczba postów: 283
Liczba wątków: 38
Dołączył: 25-12-2007
Reputacja:
4
(21-07-2009, 19:22)rodi napisał(a): Kod: if(!empty($_POST['ksywka']) && !empty($_POST['www']) && !empty($_POST['email']) && !empty($_POST['gg']) && !empty($_POST['tresc'])) {
// wszystko co ma się dziać, np. sprawdzenie poprawności tych wpisanych pól, zapisanie itd.
} else {
echo 'wypełnij pola!';
}
Powinno działać.
Jeśli ktoś w polu formularza zostawi spacje, to taka wartość ' ', przejdzie pomyślnie tą weryfikację.
Propomuje dodać przed tym fukcje trim() do każdej zmiennej przesłanej przez formularz.
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
Troche się nie zrozumieliśmy. Dziękuje Rodiemu za kod który mi się bardzo przydał, ale drugą część skryptu używam do Cms-a, w ktorym mam np. dział z mp3 i mam tam rekordy $mp3_1 $mp3_1 ... $mp3_20 i jak wpisać w panelu administracyjnym w formularzu mam 20 pól i pod tym button Dodaj. Jest tych 20 pól a przy danym wpisie mam 15 mp3-ójek przy czym 5 pól zostanie wolnych = mój wpis sie nie doda! A ma się dodać! 15 mp3 + 5 napisów: Brak danych.
Poprostu gdy dane okno nie jest wypełniane, skrypt zapisuje wpis z pustym polem, a podczas wyswietlania jego poprostu pomija to pole stosujac napis: Brak Danych. Jak potrzeba skryptu wyswietlania to prosze:
Kod: if ($_GET['go'] == 'guest_book') {
echo "<b>Guest Book:</b><br><br><br>";
echo " <a href=\"?go=guest_book_add\">Dodaj Wpis...</a><br><br><br>";
$wynik = mysql_query ("SELECT * FROM Guest_Book ORDER by nr DESC;");
$i=0;
$ile = mysql_num_rows($wynik);
while ($rekord = mysql_fetch_assoc ($wynik)) {
$nr = $rekord['nr'];
$data = $rekord['data'];
$ksywa = stripslashes( ($rekord['ksywa']));
$www = stripslashes( ($rekord['www']));
$email = stripslashes( ($rekord['email']));
$gg = stripslashes( ($rekord['gg']));
$tresc = stripslashes( ($rekord['tresc']));
echo "<table width=\"310\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">
<tr>
<td width=\"270\" align=\"left\" valign=\"middle\" bgcolor=\"#EEEEEE\"><a href=\"$www\" target=\"_Blank\">$ksywa</a></td>
<td width=\"40\" align=\"right\" valign=\"middle\" bgcolor=\"#EEEEEE\"><a href=\"mailto:$email\"><img src=\"template/img/mail.png\" width=\"14\" height=\"14\" border=\"0\"></a><a href=\"gg:$gg\"><img src=\"template/img/gg.png\" width=\"14\" height=\"14\" border=\"0\"></a></td>
</tr>
<tr>
<td width=\"310\" align=\"left\" valign=\"middle\"><i>$tresc</i></td>
</tr>
</table><br>";
}
echo "</tr></TABLE>";
}
oczywiscie wczesniej jest include ktory laczy skrypt z baza
Liczba postów: 283
Liczba wątków: 38
Dołączył: 25-12-2007
Reputacja:
4
Pokaż, strukturę bazy danych. To chyba nie skrypt odnośnie części z mp3.
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
21-07-2009, 23:39
(Ten post był ostatnio modyfikowany: 21-07-2009, 23:41 przez tinware.)
(21-07-2009, 23:27)Poju napisał(a): Pokaż, strukturę bazy danych. To chyba nie skrypt odnośnie części z mp3.
Co masz na myśli, rodzaje pól które zrobiłem ?
Jeśli chodzi o baze to zrobiłem sobie plik, żeby pozniej nie mieć problemu w razie zmiany bazy. Oto on na tabele: Guest_Book :
Kod: CREATE TABLE `Guest_Book` (
`nr` int(9) NOT NULL auto_increment,
`data` text NOT NULL,
`ksywa` text NOT NULL,
`www` text NOT NULL,
`email` text NOT NULL,
`gg` text NOT NULL,
`tresc` text NOT NULL,
KEY `nr` (`nr`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
Jeśli katalog zawiera tylko jeden plik, wyświetl... |
Apikshos |
3 |
3,735 |
13-05-2013, 15:49
Ostatni post: mateo
|
|
[php] > usuwanie stringu z tablicy, jesli został użyty i zastąpienie go innym |
eremen |
14 |
9,342 |
25-02-2012, 15:14
Ostatni post: eremen
|
|
[PHP]pole opcji(radio) działa jak pole wyboru(checkbox) |
eremen |
2 |
2,774 |
19-02-2012, 23:36
Ostatni post: eremen
|
|
[js] Dodatkowe pole formularz bez odświeżania |
Grzesiek5753065 |
2 |
4,543 |
25-02-2008, 21:57
Ostatni post: Radek
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|