Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] parent.window.reload
Forum PHP.pl > Forum > Przedszkole
misty
hej!
na wstepie od razu zaznacze ze nie lubie js i tylko sytuacje krytyczne zmuszja mnie do jego uzywania;) i to moze moje ogolne zniechecenie powoduje ze zazwyczaj z najprostyszymi rzeczami w js mam problem.
bo akurat to co mi teraz nie wychodzi, to banal..
w skrocie-mam 2 skrypty php. w jednym(glownym,niech bedzie parent) wyswietla sie jakas tabelka, jak klikne na nazwe ktorejs z pozycji to otwiera mi sie drugie okno ze szczegolami tej pozycji (child)
  1. <td><a href='#' onClick=\"childWindow=open('plik2.php');\">

jak mi sie otworzy to drugie okno , czyli childWindow ('plik2.php') to mam tam rozne szczegoly oraz pewien przycisk. i teraz jak klikne ten przycisk to chce zeby mi sie parentWindow odswiezyl.
probowalam tak:
  1. <input type='submit' name='przycisk' value='Przycisk' onClick=\"parent.window.location.reload('plik1.php');\">

oczywiscie nie dziala;)
bede wdzieczna za wszelkie sugestie!:)
Pzdr!
Ar2r
Zastosuj:
  1. window.parent.reload();
misty
tak samo? bez podania nazwy pliku? nie dziala ani tak jak napisales ani z podaniem nazwy pliku sad.gif
czy ja moze gdzies na poczatku skryptu powinnam zdefiniowac co to parent.window?
nevt
powinno być:
Kod
onClick="return window.parent.location.reload();"


polecam manuala HTML DOM
misty
yhh, to tez nie robi nic:/ ale czy w 'ciele dziecka' nie powinnam gdzies zdefiniowac jaki jest adres rodzica? a moze da sie zrobic to co chce uzysac np przy pomoca php? bo js jest tak zalezne od przegladarki ze rece mi opadaja:/ samo to ze wywoluje to drugie okno jako children, powoduje pod konquerorem to ze strona rodzica wogole znika, a na stronie children zadnej akcji nie da sie wykonac:/

hmm, a moze zapomniec o tym parent i children. jest w js funkcja typu : reload ('adres'). cos co bym mogla sobie podpiac do guzika na innej stronie , a jego klikniecie spowodowaloby przeladowanie strony o adresie 'adres'.
nevt
ach, pamięć jest zawodna a ja się zasugerowałem waszymi wpisami... powinno być:
Kod
            window.opener.location.reload();

tak na marginesie - wpisałem w goolge 'JS window parent reload' i właściwa odpowiedź wyskoczyła w drugim z brzegu linku... nie potraficie tego robić, nie znacie angielskiego czy to po prostu wrodzone lenistwo...?
misty
hm, wybacz ale akurat zanim zadam jakiekolwiek pytanie na forum-najpierw szukam na googlach, a pozniej podobnych tematow na forum. to Ci mi podales to znalazlam juz sama dawno temu. tylko mi nie dziala. stad ten watek.
powaznie, przejrzalam juz troche przykladow. zastanawiam sie czy to nie przez to jak ja mam skrypty napisane. bo w skrocie wyglada to tak:
plik1.php - w nim jest wywolana funkcja (wywolana jest z zupelnie innego pliku) i akurat ona wyswietla moja tabele i otwiera to okno child.
plik2.php-moje okno child, w ktorym jak klikne na przycisk to ma sie odswiezyc 'plik1.php' (a nie plik z ktorego jest wywolana fkcja).
eh, nie wiem czy ja to jasno napisalam..
nevt
wybacz, nie mialem zlych intencji. bez pokazania istotnych fragmentow kodu - includow PHP i wywolan funkcji JS, bez pokazania - doklanie - jak te pliki wspolpracuja - nie ruszymy z miejsca... czy to projekt tajny, czy istnieje jakis adres, gdzie mozna wejsc i popatrzec sobie w zrodla..?
misty
hej!
projekt faktycznie nie moze byc absolutnie udostepniony na zewnatrz, gdyz jest to system dla firmy, dane sa tajne itd. ale opisze wsjo najdokladniej jak sie da. wiec:
uzytkownik loguje sie do systemu, po logowaniu przechodzi na strone index.php. ta strona wyswietla rozne menu w zaleznosci od jakis tam warunkow i na koncu wywolywana jest tam fkcja: pokaz_pozycje().
fkcja ta miesci sie w rzeczywistosci w pliku funkcje.php, a w index.php jest tylko wywolana:
  1. <?php
  2. include ("funkcje.php");
  3. //jakis kod i na koncu wywolanie fkcji
  4. pokaz_pozycje();
  5. ?>

przejdzmy teraz do tej fkcji. wiec jej zadaniem jest pobranie jakis tam danych, wyswietla je w formie tabelarycznej. i teraz jak klikniemy na nazwe pozycji, otwiera sie okno ze szczegolami (to co chcialam zrobic by bylo child).
wyglada to w uproszcozny sposob mniej wiecej tak:
  1. <?php
  2. $zapytanie_do_bazy="select jakies informacje o pozycji";
  3. $odp_zapytanie_do_bazy=..
  4. echo "<table border ><tr><td>Nazwa pozycji</td><td>Cos tam</td></tr>"
  5.  
  6. while ($row=pg_fetch_array($odp_zapytanie_do_bazy))
  7. { foreach ($row as $data)
  8. $pozycja_id=$row['id'];
  9. $nazwa_pozycji=$row['nazwa_pozycji'];
  10. $cos_tam_jeszcze=$row['cos_tam_jeszcze'];
  11. //i tak dalej. teraz to pakuje do tabeli i w miejsach $nazwa_pozycji robie linka. 
    po nacisniecu na niego otworzy sie okienko
  12. // z wieksza iloscia szczegolow
  13. echo "<tr><td><a href='#' onClick=\"childWindow=open('druga_strona.php', 'okienko' , toolbar=no');\">
  14. $nazwa_pozycji</td><td>$cos_tam_jeszcze</td>"
  15. }echo "</table>";
  16. ?>


dobra, uzytkownik klika na nazwe pozycji, otwiera mu sie jakies okienko, tam oglada sobie szczegoly. aha, otwiera sie ta strona 'druga_strona.php', jak na zlosc w niej tez sa jakies menu, naglowki etc, a na dole wywolana jest kolejna fkcja (tez z pliku funkcje.php) :
  1. <?php
  2. include ("funkcje.php");
  3. //kod jakis i wywolanie fkcji ze szczegolami
  4. pokaz_szczegoly();
  5. ?>

no i dopiero ta fkcja pokazuje te szczegoly. w tych szczegolach jest cos takiego, ze mozna pozycje przeniesc do archiwum (jak sie kliknie na odpowiedni przycisk) i spoko dziala mi to ladnie. tylko ze caly czas na stronie glownej, gdzie jest ta tabelka glowna , ta pozycja istnieje. a chodzi o to by zniknela, czyli wystarczy by jeszcze raz wywolala sie fkcja pokaz_pozycje(), a tym samym strona index.php sie przeladowala..
tak jak probowalam (bez efektu) zrobic to, wyglada tak:
  1. <?php
  2. //tu sie wyswietlaja wszystkie szczegoly, a na dole jest przycisk 'zakoncz'
  3. <input type='submit' name='zakoncz' value='Zakoncz' onClick='window.opener.location.reload();'>
  4. ?>

wlasnie dlatego sie pytalam czy w tym reload('') nie wpisac jakiegos adresu.. bo plikow kilka, z nich wywolywane fkcje ktore sa jeszcze gdzie indziej.. chodzi mi o to, by na przycisnienicie 'zakoncz' przeladowala sie strona ktorej adres podam..
lol. mam nadz ze cos z tego skumales...
nevt
Przykro mi - ale bez spojrzenia w źródła nie mogę nic sensownego doradzić... Ale mam taki pomysł, żeby ta główna strona, sama automatycznie się przeładowywała, w momencie kiedy wraca do niej użytkownik: window.onFocus() ... location.reload() ... Wtedy będzie zagwarantowane, że user nie dostanie w oknie starych danych... Nie jest to eleganckie rozwiązanie, ale można je tymczasowo wstawić i szukać dalej lepszego.

Pozdrawiam.
misty
ok, sprobuje moze tak. dzieki za sugestie:)
Pozdrawiam!
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.