Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz w nowym oknie - nie dziala
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
marcini82
Witam!

Mam glowne okno, w ktorym jest spis elementow. W nim klikam sobie na odpowiedni link (onclick="window.open(costam)") i otwiera mi sie nowe okno z formularzem, w ktorym moge edytowac wlasciwosci danego elementu.
Problem zaczyna sie przy wysylaniu formularza. Chce, zeby formularz zostal wyslany (dane leca do php przez post), stare okno odswiezone, a nowe okno zeby sie zamknelo.

Probowalem cos takiego:
  1. <form onsubmit="this.submit(); window.opener.location.reload(); window.close(); return true;">

Tylko ze jak zrobie cokolwiek w onsubmit to formularz przestaje zmieniac dane. Jak nie ma onsubmit to dane w bazie sie zmieniaja, ale zostaje otwarte niepotrzebne okno.
Jak to zrobic?
revyag
Spróbuj w takiej kolejności:
1. Wysłanie danych postem
2. Odświeżenie okna rodzica
3. Zamknięcia popupa
i nie rób tego w onsubmit

Jeśli z poziomu popupa modyfikujesz bazę to znaczy że wysyłasz dane do tego samego okna, więc zrób to tak.
Zakładając że formularz ma taką konstrukcję:
  1. <form name="f1" action=" " method="post">
  2. <!--jakieś pola formularza--!>
  3. <input type="submit" name="update" value="update" />
  4. </form>

przed formularzem dajesz kod:
  1. <?php
  2. if(isset($_POST["update"])) {
  3. //update danych w bazie
  4. //.....
  5. //odświeżenie okna rdzica i zamknęcia popupa 
  6. echo '<script type="text/javascript">window.opener.location.reload();self.close()</script>';
  7. }
  8.  
  9. ?>
marcini82
No rzeczywiscie, dobry pomysl. Zrobie cos podobnego w poniedzialek, ale juz na pierwszy rzut oka mi to wyglada dobrze :-)
Dzieki.
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.