Avatar billede Slettet bruger
20. februar 2009 - 20:18 Der er 9 kommentarer

Lukker layer og reloade side

Hej, jeg håber jeg kan forklare problemet :-)

Jeg har en side med en række film-titler, hvorpå jeg åbner et layer. I mit layer åbnes et iframe, med en formular, hvor man kan gemme film-titel m.v. i en database. Dvs. siden med formularen kalder en "processing"-side, hvor data smides i databasen. Så langt så godt :-)

Når skidtet er smidt i databasen, vil jeg gerne lukke layeret (med iframet) og samtidig reloade min oprindelige side (hvor man så kan se den opdaterede film-titel).

Jeg er kommet hertil: :-D

<script>
function close_layer() {       
parent.document.getElementById('showinfo').style.display='none';parent.document.getElementById('fade').style.display='none';
document.getElementById('content').innerHTML='&nbsp;';
}
var win = setTimeout('close_layer()', 3000);
</script>

Ovenstående fjerner layeret, tømmer content (irrelevant i denne sammenhæng), MEN det reloader ikke min oprindelige side.

Jeg har prøvet (læs: rodet i blinde) at indsætte bl.a.:
setTimeout('parent.location.reload(true)',3000);

Det reloader ganske vist min oprindelige side, men det bliver ved med at reloade hver 3. sekund :-s

Nogen der kan se en løsning?
Avatar billede Slettet bruger
20. februar 2009 - 20:19 #1
Jeg skulle måske tilføje, at ovenstående script er indsat på "processing"-siden.
Avatar billede Slettet bruger
20. februar 2009 - 20:34 #2
Ja, altså - problemet er selvfølgelig at selvom layeret bliver lukket, så ligger iframet i baggrunden og reloader - hvordan kommer man omkring det?
Avatar billede olebole Juniormester
21. februar 2009 - 15:14 #3
<ole>

Du sørger for at indsætte dette element i formen:
    <input type="hidden" name="contxt" value="doDaShit">

- og så skriver du dette i dokumentet, der loades i iframe'en:

<?php
if (isset($_POST["contxt"]) && $_POST["contxt"]) {
    // Indsæt i DB her
    print '<script type="text/javascript">parent.location.reload(true)</script>';
}
?>

/mvh
</bole>
Avatar billede olebole Juniormester
21. februar 2009 - 15:15 #4
Baaahhhh ...

if (isset($_POST["contxt"]) && $_POST["contxt"]=="doDaShit") {
Avatar billede Slettet bruger
21. februar 2009 - 16:10 #5
Jeg begriber det ikke - men den bliver ved med at reloade :-s
Avatar billede olebole Juniormester
21. februar 2009 - 16:44 #6
Ikke, hvis du gør det rigtigt  =)
Avatar billede Slettet bruger
21. februar 2009 - 18:33 #7
Hmm, tanken om at min kode ikke er 100% korrekt er jo absurd :-P men jeg prøver da alligevel:

På min hoved side kaldes layeret med iframet via:

<script type="text/javascript">
function open_layer(id,url)
{
document.getElementById(id).style.display='block';
document.getElementById('fade').style.display='block';
frames['iframe_'+id].location.href = url;
}
</script>

ved flg. link:

<a href = "java script:void(0)" onclick="open_layer('showinfo','edit_post.php?id=<?php echo $Movie_id; ?>')";>

Dvs. layeret:

<div id="showinfo">

med iframet:

<iframe name="iframe_showinfo" width="500" height="420" src="" frameBorder="no" scrolling="no"></iframe>


Godt - på "edit_post.php" har jeg min form. Her har jeg indsat hidden field:

<input type="hidden" name="contxt" value="doReload">

"edit_post.php" kalder siden "edit_i_database.php", hvor tingene smides i databasen, og her er indsat:

<?php
if (isset($_POST["contxt"]) && $_POST["contxt"]=="doReload") {
?>
<script type="text/javascript">setTimeout('parent.location.reload(true)',3000);</script>
<?php
}
?>

Det virker fint - retter databasen, lukker layeret (sker når den reloader) - men den reloader igen og igen... :-s
Avatar billede Slettet bruger
21. februar 2009 - 18:36 #8
Whaaaat.... Har lige testet i IE - der virker det fint. Der reloader den ikke igen og igen - men den gør i Firefox :-S
Avatar billede Slettet bruger
21. februar 2009 - 18:47 #9
Hvis du bliver nysgerrig, så læs mere her:

http://www.sitepoint.com/forums/showthread.php?t=591990
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester