![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 15.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jak rozwiązać problem powrotu do poprzedniej strony w formularzu. nadmienie, ze Kod history.back() nie zawsze działa (nie wiem czemu - moze ktos mnie oswieci).
No wiec jak w prosty sposob zrobic powrót. przykladem moze byc zle wypelniony formularz i prosba o poprawę. oczywiscie caly formularz jest w php: 1. generowany jest formularz 2. po wyslaniu formularza sa sprawdzane wszystkie pola 3. przy blednym polu zwraca info o bledzie 4. przydaloby sie powrocic i poprawic .... a z Kod history.back() wyglada to tak, ze po kliknieciu na odnosnik 'powrot i popraw', w ktorym jest powyzszy JS nie nastepuje nic, tzn nadal pozostaje strona z infem o bledzie i odnosnikiem 'powrot i popraw' (wyglada to tak jakby ona sama byla historią).
moze ktos ma prosty pomysl na rozwiazanie 'powrot i popraw' jak i takze na wytlumaczeni dlaczego powyzszy JS nie dziala pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 17.10.2002 Skąd: Your other side Ostrzeżenie: (0%) ![]() ![]() |
proponuje to zrobic w php tak....
Najpierw sprawdzasz, czy dane z formularza sa odpowiednio wpisane... Jezeli nie, skrypt wyswietla formularz. Jezeli tak, przechodzisz do dalszej czesci kodu (formularz nie pojawia sie na stronie, bo dane sa ok) i wykorzystujesz wpisane dane.... |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
albo za pomocą header
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 15.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No i chyba bede musial tak zrobic jak piszesz Modest. Wyswietli sie formularz ze wskazaniem blednych pol.
Headerow raczej nie bede stosowal bo to jest modul do phpnuke glowie sie jednak teraz dlaczego Kod javascript:history.back() czasem dziala a czasem nie (oczywiscie w polaczeniu z php).
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
w php : [php:1:a80a86cb74]echo "<a href="java script:history.go(-1)">cofnij</a>";[/php:1:a80a86cb74]
a moze tak :?: (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 15.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:cba058da06]echo "<a href="java script:history.go(-1)">cofnij</a>";[/php:1:cba058da06]
tak tez nie dziala. Co ciekawsze w tym samym skrypcie mam dwa miejsca gdzie jest JS w jednym dziala a w tym nie chce. zastanawiam sie czy to nie ma zwiazku z konstrukcja kodu php (np. kolejnosc wywolywania funkcji - bo ten skrypt oparlem na switch i funkcjach) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
to co napisalem pietro wyzej dziala na 100% ... przynajmniej u mnie... zarzuc troszke kodu moze wina jest wlasnie gdzies podrodze ... tylko pamietaj o odpowiednim bbcode (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 15.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat to co napisalem pietro wyzej dziala na 100% 100%, a u mnie nie dziala. Po wieeeelokrotnym przeglądaniu kodu dochodze do wniosku, ze problem jest zwiazany z cache przegladarki bo nie moznabylo powrocic do strony, ktora juz raz była wyswietlona - nie sprawdzalem jednak czy jest zapisana w temp-ie.
Przerobilem skrypt i juz pozbylem sie JSa wiec kodu nie mam. Poszukam jednak bo w drugim skrypcie chyba mialem ten sam problem. Jak znajde to nie omieszkam tu wstapic i go pokazac (oczywiscie zgodnie z obowiazujacym bbcode:) ). |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 25.01.2003 Skąd: mazury, wawa Ostrzeżenie: (0%) ![]() ![]() |
Wlasnie o to chodzi, zeby tak zrobic by u wszystkich dzialalo:
[php:1:64995040dc]<?php //plik form.php if ($_POST[wypelnione]=='yeah') { if ($dane=='poprawne') //tutaj sprawdzasz poprawnosc danych z forma { Header('Location: dziekujemy.php');} else { $fzmienna1=$_POST[zmienna1]; $fzmienna2=$_POST[zmienna2]; //itd } } ?> <form action=form.php METHOD=post> <input type=hidden name=wypelnione value="yeah"> <input type=text name=zmienna1 value="<?=$fzmienna1 ?> <!-- itd --> </form> Oczywiscie to tylko idea, bo trzeba wyswietlic userowi, ze zle wypelnil, ktore pola zle wypelnil (I np zaznaczyc na czerwono) itp ?>[/php:1:64995040dc] |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 15.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
i własnie tak zrobiłem - to są proste rzeczy do czasu kiedy wuskakuja takie kwiatki jak z tym niedziałającym JSem.
jakby ktos miał ten sam problem to niech zarzuci troche kodu bo ja jednak nie znalazłem. |
|
|
![]()
Post
#11
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Mam ten sam problem... i miałem nadzieje że już go rozwiązaliście a tu widze kiszka...
Robie stronke, prosty sposób, dołanczam do każdej stronki nagłówek, właściwy skrypt który ma sie wykonać no i potem stopke. Wygląda to tak: [php:1:743103b82f]<?php ob_start(); $pagetitle = 'Kontakt'; $headertitle = 'Formularz kontaktowy'; require('includes/header.php'); require('contact/contact.php'); require('includes/footer.php'); ob_end_flush(); ?>[/php:1:743103b82f] Napisałem formularz kontaktowy, wysyłam, sprawdzam dane, i jak coś jest nie tak wyświetlam komunikat i daje link powrotny zbudowany tak jak pokazaliście wyżej. Klikam na niego i widze dalej to samo, dopiero po odświeżeniu pokazuje sie spowrotem formularz. Może dam kodzik tego formularza: [php:1:743103b82f]<?php if(empty($_POST)){ ?> <FORM METHOD="post"> <TABLE CLASS="tab_form"> <TR> <TD CLASS="td_desc">Temat listu: </TD> <TD CLASS="td_input"><INPUT TYPE="TEXT" NAME="topic" SIZE="30"></TD> </TR> <TR> <TD CLASS="td_desc">Treść wiadomości: </TD> <TD CLASS="td_input"><TEXTAREA NAME="content" COLS="45" ROWS="15"></TEXTAREA></TD> </TR> <TR> <TD CLASS="td_desc"> </TD> <TD CLASS="td_input"><INPUT TYPE="SUBMIT" VALUE="Wyślij" CLASS="button" onMouseOver="on_b(this);" onMouseOut="off_b(this);"> <INPUT TYPE="button" VALUE="Anuluj" CLASS="button" onClick="history.back();" onMouseOver="on_b(this);" onMouseOut="off_b(this);"></TD> </TR> </TABLE> </FORM> <?php } else{ require('contact/email.php'); $_POST['topic'] = stripslashes($_POST['topic']); $_POST['content'] = stripslashes($_POST['content']); if(smtp_mail('cudik@wp.pl', $_POST['topic'], $_POST['content'])){ echo 'Wiadomość została wysłana!'; } else{ echo 'Wiadomość nie została wysłana! <A HREF="java script:history.back();">Popraw</A>'; } } ?>[/php:1:743103b82f] I naśmieszniejsze jest to że jak odpalam samą strone ze skryptem link powrotny działa, a jak odpalam ze strony w której dołanczam nagłówek i stopke to nie działa. Napoczątku myślałem że to wina ob_start(), ale usunołem i dalej to samo... Czyli pewnie coś mam nie tak w header.php, tylko nie zabardzo wiem czego szukać. Moge liczyć na jakąś podpowiedź ? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 4.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat [php:1:ea06187def]echo "<a href="java script:history.go(-1)">cofnij</a>";[/php:1:ea06187def]
tak tez nie dziala. Co ciekawsze w tym samym skrypcie mam dwa miejsca gdzie jest JS w jednym dziala a w tym nie chce. zastanawiam sie czy to nie ma zwiazku z konstrukcja kodu php (np. kolejnosc wywolywania funkcji - bo ten skrypt oparlem na switch i funkcjach) sam php bezposrednio nie ma wplywu na dzialanie JS'a chyba ze wygeneruje niepoprawny kod i wtedy cos nie dziala, ale w tym przypadku to raczej wina programisty niz samego php a wracajac do problemu, sprobuj tak Kod <a href="#" onClick="history.go(-1)">back</a>
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 25.01.2003 Skąd: mazury, wawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat oczywiscie caly formularz jest w php:
1. generowany jest formularz 2. po wyslaniu formularza sa sprawdzane wszystkie pola 3. przy blednym polu zwraca info o bledzie 4. przydaloby sie powrocic i poprawic .... Nie rozumiem czegos. Przeciez w sposobie ktory podalem (i ktory stosujesz) niepotrzebny jest powrot. Co do JS nie mozesz na nim polegac, bo rozne przegladarki roznie sie zachowuja. Niektore trzymaja dane w fromularzu i mozna do nich wrocic inne nie. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Kod javascript:history.back()
moze czegos nie rozumiem ale dla mnie sprawa z niedzialajacym js jest oczywista: naciskajac back/cofnij wraca do wysylania i sprawdzania formularza i skoro tenze jest pusty to kolejy skrypt wyswietla zle wypelnie nie formularza |
|
|
![]()
Post
#15
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Widze że musze jeszcze raz wytłumaczyć na czym sprawa polega. JS działa poprawnie, ale z jakichś powodów php generuje jeszcze raz to samo, dopiero po odświeżeniu strony pokazuje się to co trzeba. I co najdziwniejsze, w przykładzie który podałem wraca ale generuje jeszcze raz to samo, ale na tej samej stronie mam inny przykład takiego linka i tam już działa poprawnie... Jestem tylko ciekaw o co tak naprawde chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 15.04.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie rozumiem czegos. Przeciez w sposobie ktory podalem (i ktory stosujesz) niepotrzebny jest powrot.
dobrze kombinujesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) oczywiscie zastosowalem inne rozwiazanie ale tylko dlatego aby obejsc problem z JSem. Nie oznacza to jednak ze 'stchorzylem' - okazalo sie ze bez JSa to lepsze rozwiazanie (mozna wskazac dokladne miejsce bledu). Mimo, ze teraz nie potrzebuje w swoim skrypcie tego typu rozwiazania chcialbym jednak sie dowiedziec czemu tak sie dzieje, ze nie mozna wrocic do okreslonej strony (nie sadze by to byl blad wygenerowania JSa - raczej cos z chachem przegladarki). a wszystko wyszlo tak: oto link do skryptu - http://www.icons.com.pl/poz_nuke/modules.p...=Firmy&op=dodaj |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 23:57 |