/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Update på main side
Fra : Chrístian Jørgensen


Dato : 16-12-08 11:30

Fra en tabel på main.php åbner jeg et popup vindue.

Dette giver et tekstfelt som jeg kan skrive i

Når teksten ikke er relevant længere slettes indholdet ved en
submit "slet"

Herefter lukkes popup vinduet med

echo"<META HTTP-EQUIV=Refresh CONTENT=0;URL=luk.php>";

Luk siden :

<script>
window.opener=self;
window.close()
</script>

Problemet er at main.php viser at popup vinduet stadig er aktivt,
hvordan får jeg main.php til at opdatere når jeg lukker/sletter
tekstfeltet i popup vinduet.

Håber ikke det er for kryptisk et spørgsmål

M.v.h. Chrisitan Jørgensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Carsten (16-12-2008)
Kommentar
Fra : Carsten


Dato : 16-12-08 13:50

"Chrístian Jørgensen" <spam@mail.dk> skrev i en meddelelse
news:49478336$0$90265$14726298@news.sunsite.dk...
> Fra en tabel på main.php åbner jeg et popup vindue.

Check !

> Dette giver et tekstfelt som jeg kan skrive i
> Når teksten ikke er relevant længere slettes indholdet ved en
> submit "slet"

Check !

> Herefter lukkes popup vinduet med
> echo"<META HTTP-EQUIV=Refresh CONTENT=0;URL=luk.php>";

Hmm, lidt pudsig måde at få vinduet lukket på... men det virker nok som det
skal

> window.opener=self;

Den linie giver ikke den store mening. Man bruger normalt "window.opener" i
en read/only mode. Du får vist ikke noget ud af at tildele noget nyt til
den.

> window.close()

Check !

> Problemet er at main.php viser at popup vinduet stadig er aktivt,
> hvordan får jeg main.php til at opdatere når jeg lukker/sletter
> tekstfeltet i popup vinduet.

Det gør du netop ved at bruge window.opener som er en reference til netop
dit hovedvindue. Fra popup vinduet kan du via window.opener kalde javascript
metoder i hovedvinduet. Lige inden din "window.close()" laver du følgende:

// din window.opener = self skal væk !!
if (window.opener) window.opener.childIsClosing();
window.close();

I hovedvinduet har du så en javascript funktion som ...

function childIsClosing()
{
alert('My child has gone away - or is about to anyway...');
}

Carsten



Chrístian Jørgensen (16-12-2008)
Kommentar
Fra : Chrístian Jørgensen


Dato : 16-12-08 14:12

Tak for dit hurtige svar.

Ja jeg er ikke den store javascript haj, kan godt se at det virker selv om jeg
sletter window.opener=self;

> > window.opener=self;
>
> Den linie giver ikke den store mening. Man bruger normalt "window.opener" i
> en read/only mode. Du får vist ikke noget ud af at tildele noget nyt til
> den.
>

Som sagt, ikke den store haj, jeg kan ikke rigtig få det til at virke.

> Det gør du netop ved at bruge window.opener som er en reference til netop
> dit hovedvindue. Fra popup vinduet kan du via window.opener kalde javascript
> metoder i hovedvinduet. Lige inden din "window.close()" laver du følgende:
>
> // din window.opener = self skal væk !!
> if (window.opener) window.opener.childIsClosing();
> window.close();

hvis jeg indsætter dette præcis som skrevet lukker mit popup vindue ikke ?

> I hovedvinduet har du så en javascript funktion som ...
>
> function childIsClosing()
> {
> alert('My child has gone away - or is about to anyway...');
> }

Måske har det noget med at popup vinduet ikke lukker, men der sker heller ikke
noget på min mail.php

Det jeg gerne ville, var at når popup vinduet lukker så laver mail.php bare en
update (svarende til F5)

M.v.h. Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Carsten (16-12-2008)
Kommentar
Fra : Carsten


Dato : 16-12-08 15:35

"Chrístian Jørgensen" <spam@mail.dk> skrev i en meddelelse
news:4947a92d$0$90272$14726298@news.sunsite.dk...
> Tak for dit hurtige svar.
>
> Ja jeg er ikke den store javascript haj, kan godt se at det virker selv om
> jeg
> sletter window.opener=self;
>
>> > window.opener=self;
>>
>> Den linie giver ikke den store mening. Man bruger normalt "window.opener"
>> i
>> en read/only mode. Du får vist ikke noget ud af at tildele noget nyt til
>> den.
>>
>
> Som sagt, ikke den store haj, jeg kan ikke rigtig få det til at virke.
>
>> Det gør du netop ved at bruge window.opener som er en reference til netop
>> dit hovedvindue. Fra popup vinduet kan du via window.opener kalde
>> javascript
>> metoder i hovedvinduet. Lige inden din "window.close()" laver du
>> følgende:
>>
>> // din window.opener = self skal væk !!
>> if (window.opener) window.opener.childIsClosing();
>> window.close();
>
> hvis jeg indsætter dette præcis som skrevet lukker mit popup vindue ikke ?

Hmm... så er det nok fordi du ikke har fået lavet "childIsClosing()" metoden
i hovedvinduet, så prøver den nemlig at kalde noget som ikke findes. Det går
ikke...

Hvis dit hovedvindue bare skal refreshes så laver du bare følgende:

function childIsClosing()
{
window.location.reload(true); <-- true betyder force reload - ikke brug
cache ! Bemærk! javascript 1.2 funktion !
}

Carsten



Chrístian Jørgensen (16-12-2008)
Kommentar
Fra : Chrístian Jørgensen


Dato : 16-12-08 15:59

Ja så prøver jeg igen, godt klar over at det nok er mig der er lidt langsom.

1. side (main.php)

I min header

<script type="text/javascript">
function childIsClosing()
{
window.location.reload(true);
}
</script>

2. side (popup.php)

Åbnes med:

<a href=#
onClick=MyWindow=window.open('popup.php?vnr=$Ordre&vpos=$Pos','MyWindow','toolba
r=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,
width=480,height=250,left=150,top=150'); return false;>";

Når jeg vil slette mit text felt submitter jeg til:

if($_GET[slet]){
$update="update Prod set obs='$_GET[obstext]', Maerke=0 where ordre='$_GET[vnr]'
&& pos='$_GET[vpos]'";
mysql_query($update);
echo"<META HTTP-EQUIV=Refresh CONTENT=0;URL=luk.php>";
}

3. side (luk.php)

Dette er i headeren

<script type="text/javascript">
if (window.opener) window.opener.childIsClosing();
window.close()
</script>

Håber det lykkedes tilsidst, og tak for din tålmodighed.

M.v.h. Christian



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste