![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
zwykle mialem np "<meta http-equiv=refresh content=\"2; URL=...>" ale tu chodzi o konkretny przypadek.
Mam formularz w ktorym wpisuje dosc sporo danych, jesli ktores pole jest puste, trzeba to poprawic. W przypadku opcji refresh pola formularza sie automatycznie czyszcza, jesli zas klikne wstecz na przegladarce pola formularza ktore juz wpisalem dalej sa wypelnione. Chcialbym wiec sie dowiedizec czy jest jakas opcja zamiast refresh to wstecz, aby po tych paru sekundach bylo automatyczne przekierowanie. Szukalem na google i tutaj w archiwum, ale nie znalazlem, probowalem tez wpisywac back i previous, jednak nie dzialaja. Ten post edytował plurr 30.07.2007, 19:14:20 -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 235 Pomógł: 17 Dołączył: 18.07.2007 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
teoretycznie da się to zrobić w JSie, praktyczniej to zrobić w JSie i używając cookies. Można to również bardzo prosto zrobić w PHP. Którą bramkę wybierasz
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Poszukaj o JavaScript history back:
Np (plik text.html): Ten post edytował TomASS 30.07.2007, 20:59:45 -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
@kosmowariat: to ja wybiore opcje: PHP
@TomASS: chodzi mi dokladnie o auto-wstecz, tak jak to moglem robic w metatagu, jednak przy refresh pola formularza sie resetują, potrzebna mi wiec opcja wstecz ktora zostawia poprzednio wypelnione pola. JS z tego co wdize, oferuje jedynie wlasnoreczne klikanie - dalej, wstecz, przeladuj, nie widze nic o 'samoistnym powrocie' w przypadku np 'pustych pol' - bo o to mi chodzi ![]() -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Poczytaj o setTimeout() i właśnie history.back() - połączenie tych dwóch powinno zrealizować to, o co Ci chodzi.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat dokladnie o auto-wstecz No nie gadaj, że tego nie mogłeś znaleźć: wywoływanie skrytpu java co x sekund ![]() Cytat , tak jak to moglem robic w metatagu, jednak przy refresh pola formularza sie resetują, potrzebna mi wiec opcja wstecz ktora zostawia poprzednio wypelnione pola. JS z tego co wdize, oferuje jedynie wlasnoreczne klikanie - dalej, wstecz, To Ci przecież piszę, że history back robi tak jak chcesz - sprawdzałeś w ogóle mój przykład? P.S. Możesz pisać bardziej "po polsku"? - proszę ![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
@phpion.com: dzieki, o to mi chodzilo.
@TomASS: oj google to ja non stop mam uzywane ![]() -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 235 Pomógł: 17 Dołączył: 18.07.2007 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
sugeruję jednak użycie php gdyż różne przeglądarki mogą różnie się zachowywać. jedne moga wyświetlać po cofnięciu dane, inne nie. PHP gwarantuje to na 101%
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
sugeruję jednak użycie php gdyż różne przeglądarki mogą różnie się zachowywać. jedne moga wyświetlać po cofnięciu dane, inne nie. PHP gwarantuje to na 101% a czy moglbys napisac cos wiecej o tym jak to zrobic w php? Jesli chodzi o header() to dziala tak samo jak wczesniejszy metatag (chyba ze jestem niedoinformowany). Zrobilem wiec setTimeout("window.history.back()",3000); i ladnie dziala, tylko faktycznie kiepsko bedzie jesli na innych przegladarkach pola beda puste. Chociaz jestem 100% przekonany, ze ludzie dla ktorych bedzie ta strona uzywaja wylacznie ie. Ten post edytował plurr 30.07.2007, 22:10:04 -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Przykladu nie musialem sprawdzac, pisze o auto-wstecz po x sekundach, a Ty podales 'onclick="history.back()"'. Pokazałem Ci funkcję JS która cofa stronę w historii do tyłu, dodatkowo jak wpiszesz w google to co chciałeś to masz komplet informacji - widzisz, zrobiłeś tak jak pisałem i wyszło ok, o to że jedne przeglądarki mogą wyświetlać a inne nie to się nie martw FF, IE i Op działa, także jest git, moim zdaniem nie ma co wyciągać armaty (PHP) na muchy ![]() Cytat sugeruję jednak użycie php gdyż różne przeglądarki mogą różnie się zachowywać. jedne moga wyświetlać po cofnięciu dane, inne nie. PHP gwarantuje to na 101% A możesz pokazać jak ? ![]() -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 106 Pomógł: 1 Dołączył: 2.12.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
sprawa jest prosta - na stronie z której masz się cofnąć pobierasz dane z formularza POST-em i wpisujesz
przesyłając te dane metodą GET z powrotem na stronę na której jest formularz. Dajesz tam if-a sprawdzającego, czy GET-em coś przyszło i jeśli tak, to do INPUT-ów wstawiasz
może trochę więcej pisania niż w JS, ale masz 100%, że dane zostaną w formularzu |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
TomASS: skoro dziala na tych podstawowych przegladarkach to gitara
![]() Neojawor: metoda ktora podales przydaje sie w edycji danych, wtedy pola sa defaultowo wypelnione, jednak nie sprawdzi sie w przypadku tworzenia nowego pracownika, bo danych takowych nie ma jeszcze w bazie ![]() ![]() Ten post edytował plurr 31.07.2007, 10:07:25 -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 235 Pomógł: 17 Dołączył: 18.07.2007 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
@tomASS - Neojawor właśnie pokazał jak to zrobić
@plurr - coś nie kumaty jesteś ![]()
Ten post edytował kosmowariat 31.07.2007, 11:03:18 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
zabraklo by mi miejsca w pasku adresu
![]() ![]() -------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Odświeżam temat... może ktoś raz jeszcze w miare prosto rozpisać automatyczne odświeżanie ale kodem PHP?? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 355 Pomógł: 50 Dołączył: 20.08.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
IMHO lepiej po prostu javascriptem sprawdzic czy wszystkie pola formularza zostaly wypelnione, a jezeli nie zostaly to zwrocic false i alert z komunikatem
![]() -------------------- przetwornik yt na czasie :)
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 1.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kiedys napisałem klasę obsługującą formularze, może nie jest za długa na to forum [;
CODE <?php class FormGenerator { private $fields; private $action; private $method; private $name; private $error = false; private $email; private $vcode; private $update; private $userId; function __construct($name,$action,$method,$update=false,$userId=0) { $this->name = $name; $this->action = $action; $this->method = $method; $this->update = $update; $this->userId = $userId; } function addField($label, $name, $type, $value, $style, $required ,$separator = "") { $this->fields[$label][$name]['name'] = $name; $this->fields[$label][$name]['type'] = $type; $this->fields[$label][$name]['value'] = $value; $this->fields[$label][$name]['style'] = $style; $this->fields[$label][$name]['separator'] = $separator; $this->fields[$label][$name]['required'] = $required; } function getSqlQuery($tableName,$vcode = true) { $query = "INSERT INTO ".$tableName." SET "; $password = ""; if (!isset($_POST[$this->name])) $postData = $_SESSION[$this->name]; else $postData = $_POST[$this->name]; foreach ($this->fields as $description => $fields) { foreach ($fields as $fieldName => $value) { if ($value['type'] == "password") { if (!empty($password)) continue; else { $postData[$value['name']] = md5($postData[$value['name']]); $password = "set"; } } if ($value['name'] == 'email') { $this->email = $postData[$value['name']]; $this->vcode = md5(time()); if ($vcode == true) $parameters[] = 'vcode="'.$this->vcode.'"'; } $parameters[] = $value['name']."=\"".htmlspecialchars(trim($postData[$value['name']]))."\""; } } $query .= implode(", ",$parameters); return $query; } function verifyData() { $emptyFields = false; $formData = $_POST[$this->name]; foreach ($formData as $field => $value) { if (empty($value)) $emptyFields[]=$field; } if ($emptyFields != false) $this->modifyFields($emptyFields); } function modifyFields($emptyFields) { $password = ''; foreach($this->fields as $description => &$row) { foreach ($row as $field => &$value) { if (in_array($value['name'],$emptyFields) && $value['required'] == true) { $value['style'] .= "; border: 1px solid #ff0000;"; if ($this->error == false) $this->error = ""; $this->error[] = '<b>Błąd:</b> Nie wszystkie wymagane pola zostały wypełnione.<br />'; } else { if ($value['name'] == 'email') { $database = new Database(DATABASE_NAME); $database->executeQuery("select userId from users where email=\"".$_POST[$this->name]['email']."\""); if ($database->getNumRows() > 0) $this->error[] = "<b>Błąd:</b> wpisany adres istnieje w naszej bazie danych.<br />"; } if ($value['type'] != 'password') $value['value'] = htmlspecialchars(trim($_POST[$this->name][$value['name']])); else { if (!empty($password)) { if ($password != $_POST[$this->name][$value['name']]) $this->error[] = "<b>Błąd:</b> Wpisane hasła się nie zgadzają.<br />"; if (strlen($password) < 5) $this->error[] = "<b>Błąd:</b> Hasło jest krótsze, niż 5 znaków.<br />"; } else { $password = $_POST[$this->name][$value['name']]; } } } } } if (is_array($this->error)) $this->error = array_unique($this->error); } function isError() { if (!isset($_POST["formSent"])) return true; elseif ($this->error == false) return false; else return true; } function getError() { if ($this->error == false) return false; else { $this->error = "<p class='error'>".implode("",$this->error)."</p>"; return $this->error; } } function getName() { return $this->name; } function getEmail() { return $this->email; } function getVcode() { return $this->vcode; } function printForm() { echo("<form action='".$this->action."' method='".$this->method."'>\n"); echo("<table border='0' cellspacing='2' cellpadding='0' width='500'>\n"); echo("<input type='hidden' name='formSent' value='true'>"); foreach ($this->fields as $key => $value) { echo("<tr>\n"); echo("<td align='right'>".$key."</td>\n"); echo("<td>\n"); foreach($value as $field => $options) { echo("<input type='".$options['type']."' name='".$this->name."[".$options['name']."]' value=\"".$options['value']."\" style='".$options['style']."'>".$options['separator']."\n"); } echo("</td>\n"); echo("</tr>\n"); } echo("<tr><td></td><td align='left'><input type='submit' value='Wyślij' style='background-color: #000;color: #fff;font-weight: 700;border: 3px solid #000;'></td></tr>\n"); echo("</table>\n"); echo("</form>\n"); } } ?> Wykorzystywałem ją tak: Kod $form = new FormGenerator("createaccount","create_account.php","POST"); $form->addField("Imię","fname","text","","width: 300px", true); a później: Kod if (isset($_POST['formSent'])) { $form->verifyData(); } if ($form->isError() != false) { echo($form->getError()); $form->printForm(); } Nie jest to może dzieło, ale powinno zadziałać [; Jeśli chodzi o JS, to zbyt łatwo go wyłączyć, aby móc na nim polegać, akurat w tym przypadku. |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 9.10.2007 Skąd: Morąg Ostrzeżenie: (0%) ![]() ![]() |
Zawsze dane mozna wrzucic do sesji. np $_SESSION['imie']="jakies_imie" itp. i formularzu <input type="text" name="imie" value="$_SESSION['imie']"> i jezeli nie wypelnisz sesji to na poczatku bedziesz mial zawsze puste pole. Potem tradycyjnie formularzem wysylasz do pliku php i odbierasz $_SESSION['imie']=$_GET['imie]; i jak bedziesz robil np inserty w bazie to tez odwolujesz sie do zmiennej sesyjnej i po klopocie. A z cofaniem to sprobuj <meta http-equiv=refresh content=\"2; URL=java script:history.go(-1)"> - u mnie dzialalo.
Ten post edytował gutek84 2.03.2008, 14:07:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:07 |