Autor Zpráva
carix@post.cz
Profil *
Zdravim,
Chápu, že už se tu tohle mohlo někde vyskytnout ale potřeboval bych pomoct.

Takže situace je takova: Mam stranku s uzivateli, tam se klikne na upravit uzivatele, pomoci javascriptu se vytvori nove okno kde je formular na upravu. A ted potrebuju aby az odesle ten formular aby se zase vse presunulo do puvodniho (main) okna a to male se zavrelo.

Doufam ze by mi nekdo byl schopny pomoct.
diky
Beavis
Profil
carix@post.cz:
window.close()
zavře aktuální okno a přejde do nadřazeného.
carix@post.cz
Profil *
Beavis:
to sice ano ale nic v tom nadřazením se mi nezmění. já potřebuju aby se mi změnil obsah toho nadřazeného okna
Beavis
Profil
carix@post.cz:
Tak ještě třeba přesměrovat nadřazené okno na stránku s žádaným obsahem, přes
window.location.href=
.
Herm
Profil
carix@post.cz:
window.opener.location.reload(true);
carix@post.cz
Profil *
Herm:
Mno takže povedlo se mi aby se me reloadlo to main okno ale pořád to není co potřebuju... Jde o to že mám formulář, pak samozřejmě stránku s akcí co s daty z formu udělat a pak bych potřeboval po provedení tohodle scriptu aby se mě vše přesunulo zpět do hlavního okna. Jde to opravdu těžko vysvětlit :(

dejme tomu že takhle vypadá script pro zpracování dat z formu:

if (isset($_POST["send"])){
  $edituj = mysql_query("UPDATE user SET name='".$_POST['name']."' WHERE id='".$_GET['id']."' ");
  if(!$edituj) {header("Location:../home.php?id=3&upraveno=1");} else {{header("Location:../home.php?id=3&upraveno=2");}}
}


No a to jak to nakonci přesěrovává na home.php t už bych potřeboval aby bylo v hlavnim okne.
V malem okne je form no a potrebuju po stisku odeslat aby se vse delo uz v main okne, popr. se muze ten script provést v malém okně, ale přesměrování na konci scriptu už musí být do hlavního, velkého.

Nevím už jak lépe to vysvětlit, kdyby někdo pomohl byl bych vděčný
sysel
Profil
Možná je to hloupý nápad, ale zkusil bych si v hlavní stránce přidat skrývaný <div> s formulářem na úpravu uživatele. Tak se vyhnu problému s propletením otevřených oken. Ten <div> by se dal zřejmě nastylovat, aby vypadal jako vyskočené okénko.

Před nějakou dobou jsem řešil něco vzdáleně podobného, totiž v samostatném okně dohledání správného PSČ a po jeho nalezení se PSČ překopíraovalo JavaScriptem do hlavního okna do správné kolonky v tabulce a pomocné okénko se mohlo zavřít. (Nakonec bylo vyhledávání PSČ natolik úspěšné, že si kolegové vymohli, aby se dalo spouštět samostatně.)
carix@post.cz
Profil *
sysel:
Jojo to s tim skryvanym divem jsem už taky přemýšlel, ale pořád bych to raději udělal takhle... Už mám takhle jedno vyskakovací okno, kde jsou různé detaily a působí to dobře když by byly obě vyskakovací
sysel
Profil
Proti samostatnému oknu nic nemám, jen si nejsem jistý, zda, když se v něm několikrát protočí PHP dotaz, si bude ještě pamatovat window.openera. Ale v tom případě vložte do hlavního okna vlastnost window.name a máte vystaráno. JavaScriptem přeneste potřebné údaje nikoli přes relativní odkaz, ale uvedením absolutního příjemce. Mně to tak fungovalo, jen po mně nechtějte z hlavy psát kód, ten je někde v archivu....
carix@post.cz
Profil *
No nemá cenu se tím nějak zabývat déle, tlačí mě čas a nechce se mi přidávat další tunu kódu takže jsem to vyřešil elegantně: "Uživatel upraven zavřít okno (window.close();)" děkuju všem za snahu.

Btw ještě jedna věc mě tak trošku dumá hlavou.... window.opener.location.reload(true); funguje jen nekdy... zatimco pracuji ve vedlejsim okne, v hlavnim je vypis vsech polozek. tzn ze kdyz vyvolam na vedlejsim okne window.opener.location.reload(true); vypis se mi aktualizuje, a po zavreni vedlejsiho okna ma uzivatel okamzite aktualizovany vypis, coz pusobi velmi hladce, nicmene se obcas stane ze tato funkce nefunguje. Ne uplne nefunguje, v liste prohlizece muzu videt ze aktualizace probehla ale neaktualizoval se vypis.
Funkci mam prilepenou na tlacitku pro odeslani formulare, takze samozrejme je chyba ta ze mi to nejdriv aktualizuje hlavi stranku a pak teprve provede upravu v db. Na jaky prvek muzu tedy prilepit tuhle funkci aby to bylo az po provedeni? existuje neco jako OnLoad? v javascriptu nejsem vubec zbehly.

Dekuju

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0