Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Powrót do poprzedniej strony (np. w formularzu)
voytass
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Modest
post
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....
Go to the top of the page
+Quote Post
Jabol
post
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
Go to the top of the page
+Quote Post
voytass
post
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).
Go to the top of the page
+Quote Post
Fo
post
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)
Go to the top of the page
+Quote Post
voytass
post
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)
Go to the top of the page
+Quote Post
Fo
post
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)
Go to the top of the page
+Quote Post
voytass
post
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:) ).
Go to the top of the page
+Quote Post
lisu
post
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]
Go to the top of the page
+Quote Post
voytass
post
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.
Go to the top of the page
+Quote Post
Cudi
post
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">&nbsp;</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ź ?
Go to the top of the page
+Quote Post
[fisher]
post
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>
Go to the top of the page
+Quote Post
lisu
post
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.
Go to the top of the page
+Quote Post
michaloo
post
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
Go to the top of the page
+Quote Post
Cudi
post
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)
Go to the top of the page
+Quote Post
voytass
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:57