05. marts 2005 - 18:42
Der er
38 kommentarer og 2 løsninger
opdatering af hovedside + lukning af popup vindue.
Hej Eksperter. Sidder og roder med noget gæstebog, hvor der popper et nyt vindue op når man skal indlægge en besked. problemet er så at få den til at lukke vinduet sammen med at opdatere hovedsiden. Nogle ideer eller løsninger?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
05. marts 2005 - 18:49
#1
og: window.parent.location.reload(); window.close(); virker ikke?
05. marts 2005 - 18:49
#2
hov vent, det skulle selvfølgelig have været en window.opener
05. marts 2005 - 18:54
#3
jeg har nada forstand på javascript, det er så sindssygt lidt jeg har rodet med det, så det er til at grine over. :(
05. marts 2005 - 18:56
#4
lad os sige hovedsiden hedder main, og det er den side som smider en popup efter brugeren. når brugeren har indtastet sin besked, og trykker på Skriv, så opdatere den hovedsiden, lukker popup'en ned, og hopper til beskeden. håber du forstår.
05. marts 2005 - 18:57
#5
har før lavet chatte hvor jeg har brugt <base target="main"> men ved ikke om det virker når det er en popup?
05. marts 2005 - 19:22
#6
opener.window.location.reload(true); window.close();
05. marts 2005 - 19:26
#7
Man kunne lave det sådan her.. main checker om popup eksister - hvis popup eksisterer, luk popup og i popup: <form action="update.php" target="opener"> ... </form>
05. marts 2005 - 19:30
#8
nu røg jeg af. når man trykker på Skriv besked på hovedsiden, så lukker den en popup, hvor du så kan skrive din besked, når du så trykker send, så smider den informationerne ned til hovedsiden, hvor noget php så behandler det, så lukker popup'en, og phpscriptet på hovedsiden, smider så brugeren over til vedkomnes besked. i korte træk. hvordan smider jeg informationerne fra popup vinduet ned til hovedvinduet, og lukker popup vinduet ned. ??
05. marts 2005 - 19:36
#9
En anden metode: ** main: <form action="opdater.php" navn="FORMSNAVN" method="post" style="display:inline"> <input type="hidden" name="navn"> <input type="hidden" name="besked"> </form> ** popup: ved klik på "Skriv" aktiveres en onclick.. f.eks.: <form onsubmit="return senddata(this); return false;"> Navn: <input type="text" name="navn"> <br> Besked: <input type="text" name="besked"> <br> <input type="submit" value="Skriv"> </form> <script type="text/JavaScript"> function senddata(t) { f = opener.window.document.FORMENSNAVN; f.navn.value = t.navn.value; f.besked.value = t.besked.value; f.submit(); window.close; } </script>
05. marts 2005 - 19:37
#10
Der skulle selfølgelig stå "name" i stedet for "navn": <form action="opdater.php" name="FORMSNAVN" method="post" style="display:inline">
05. marts 2005 - 19:39
#11
så vidt jeg kan se, så sender den bare informationerne fra popup'en ned i en form på hovedsiden??
05. marts 2005 - 19:39
#12
Man kunne også lave selve "tjekket->luk popup" via siden der opdater.. men så skal man vente på at koden afvikles.. ser ikke særligt pænt ud..
05. marts 2005 - 19:40
#13
Ja, og den submitter også hovedsidens skjulte form.. denne linie submitter: f.submit();
05. marts 2005 - 19:41
#14
Ved klik på Skriv (eller et tryk på Enter-tasten) i popup'en, sker der: 1) informationerne sendes til den skjulte form, på hovedsiden 2) den skjulte form på hovedsiden submittes 3) popup'en lukker sig selv
05. marts 2005 - 19:42
#15
nice må jeg lige prøve. :D vender tilbage om.. 15 mins, skal lige bikse det hele sammen. *G*
05. marts 2005 - 19:53
#16
Der sker ikke en skid... index.php: ################### <html> <head> <script> function NewWin () { win=window.open('popup.htm','_blank','width=500,height=300,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no') } </script> </head> <body> <a href="#" OnClick="java script:NewWin()">Skriv!</a> <form action="opdater.php" navn="FORMSNAVN" method="post" style="display:inline"> <input type="hidden" name="navn"> <input type="hidden" name="besked"> </form> </body> </html> ###################### popup.htm ###################### <html> <head> <script type="text/JavaScript"> function senddata(t) { f = opener.window.document.FORMENSNAVN; f.navn.value = t.navn.value; f.besked.value = t.besked.value; f.submit(); window.close; } </script> </head> <body> <form onsubmit="return senddata(this); return false;"> Navn: <input type="text" name="navn"> <br> Besked: <input type="text" name="besked"> <br> <input type="submit" value="Skriv"> </form> </body> </html> #################### Opdater.php #################### <?php echo "Navn: " . $_POST['navn'] . "<br />"; echo "Besked: " . $_POST['besked'] . "<br />"; ?> ###################### noget der er sat forkert op??
05. marts 2005 - 19:54
#17
hehehe.. jeg fandt også ud af, at der var fejl.. :-) havde ikke testet det, men kigger lige på det :-)
05. marts 2005 - 19:55
#18
*LOL* Takker. :D
05. marts 2005 - 20:16
#19
Jeg bliver lige nød til at smutte.. kigger på det, når jeg vender tilbage.. bliver nok engang i aften..
05. marts 2005 - 20:17
#20
bare i orden. :D
05. marts 2005 - 20:18
#21
okey det var IKKE filrettighederne. *LOL* :D
05. marts 2005 - 20:20
#22
hov, *G* forkert indlæg. *LOL* :D
06. marts 2005 - 07:04
#23
har løst det med dette: <form action="opdater.php" method="POST" target="FORMSNAVN" onsubmit="java script:return senddata(this); return false"> Navn: <input type="text" name="navn"> <br> Besked: <input type="text" name="besked"> <br> <input type="submit" value="Skriv" OnClick="window.close()"> </form> har smidt "action="opdater.php" method="POST" target="FORMSNAVN" " ind i formen, og smidt en Onclick="window.close()" på submit knappen. men jeg ved ikke hvor holdbart det er, da jeg ikke ved om den lukker vinduet idet den submitter dataerne, eller om den submitter dataerne og så lukker vinduet...
06. marts 2005 - 07:11
#24
okey der var lidt mere til det end det jeg skrev. *G* på hovedesiden har jeg tilføjet: <script ...> self.name = "FORMSNAVN"; </script> og så har jeg fjernet: <form action="opdater.php" navn="FORMSNAVN" method="post" style="display:inline"> <input type="hidden" name="navn"> <input type="hidden" name="besked"> </form> og det virker nu, men stadig samme problemstilling som før... hvad loader først og er det holdbart.
06. marts 2005 - 07:12
#25
men det virker dog ikke i firefox. :(
06. marts 2005 - 17:19
#26
onclick-metoden er ikke god, idet den kræver at brugeren *klikker* på Skriv-knappen, og ikke bare *trykker* enter, ved et af felterne. Jeg kan ikke se hvad der er galt.. hvis man vil ha' den til at udføre en funktion, der bruger data fra opener, virker det ikke.. men hvis jeg f.eks. indsætter alert('test') i funktionen (uden opener-koden) virker det fint.. Jeg har lige sendt en mail til roenving.. det kan være at han har en løsning..
06. marts 2005 - 17:27
#27
okey, for jeg har prøver jeg VED ikke hvor mange "lukninger" byttet rundt på det hele.. sad omkring 3 timer i morges og surfede rundt på nettet efter en løsning.. og intet virker. :(
07. marts 2005 - 12:05
#28
>>blackscorpion 06/03-2005 07:04:48 vil lukke vinduet før submit, en rimelig løsning vil være: <form action="opdater.php" method="POST" onsubmit="setTimeout('opener.location.reload(true);self.close()',150);"> Navn: <input type="text" name="navn"> <br> Besked: <input type="text" name="besked"> <br> <input type="submit" value="Skriv"> </form> -- så skal din opdater.php i princippet overhovedet ikke returnere noget ... -- en helt anden form for løsning, kan f.eks. være: <form action="opdater.php" method="POST" target="GranMa" onsubmit="opener.name='GranMa';setTimeout('self.close()',100);"> -- hvor opdater.php så bare redirecter til hovedsiden, når data er indsat i databasen !-)
07. marts 2005 - 12:52
#29
ahh kan se jeg har formuleret mit spørgsmål en anelse forkert. *G* <form target="FORMSNAVN" action="opdater.php" method="POST" onsubmit="setTimeout('self.close()',150);"> Den her virker PRÆCIST som den skal. :D Roenving, smid et svar og du får point. :D
07. marts 2005 - 12:59
#30
Velbekomme '-) -- men sørg nu også for at strandløven får nogle af dine alt for mange point for indsatsen !-)
07. marts 2005 - 13:12
#31
jamen så skal vi vente på at strandløven, gider smide et svar. :D Men du kan få 60 point som er "svær" hvis det er okey? mener engang at have set dig sige at du ikke rørte spørgsmål med over 60 point. :D
07. marts 2005 - 13:18
#32
-- lyder ikke helt urimeligt !-) -- det du nok har set mig udtrykke er, at jeg, hvis jeg lige kan nå at kaste mine øjne på eet spørgsmål, og skal vælge mellem et med 200 og et med 60, automatisk vælger det med 60 !o]
07. marts 2005 - 13:25
#33
okey, men det er længe siden... MEGET længe siden. :D
07. marts 2005 - 23:45
#34
Jamen, så lægger jeg da bare et svar :-) Nu ikke noget med at give mig 140 points :-)
07. marts 2005 - 23:58
#35
nej nej. :P
08. marts 2005 - 00:01
#36
hahaha :-) Det burde ha' været omvendt, da roenving kom med den endelige løsning..
08. marts 2005 - 00:05
#37
ja men set tiden i betragtning. og det eneste som han faktisk bedragede med var setTimeout() :D men overvejede faktisk at give dig 139 og roeving 61, bare for ikke at give dig 140 :P
08. marts 2005 - 00:20
#38
men må godt nok indrømme at det virker underligt at self.close; ikke virker, men setTimeout('self.close()',150); gør... *G*
08. marts 2005 - 02:53
#39
Det er der faktisk ikke noget underligt i ... Det, der nemlig sker, er at self.close() bliver fyret af inde i popupvinduets del af windows-hukommelsen, hvorefter den hukommelsesdel bliver nedlagt, og alle igangværende processer i der derfor bliver nedlagt, selvfølgelig inkluderende den ikke færdiggjorte proces, som er sat igang 3/4 mikrosekund i forvejen, men ikke er blevet færdigbehandlet, da den jo kræver et tilbagesvar fra serveren !-) -- og tak for point ;~}
08. marts 2005 - 02:56
#40
ahh okey, så det hele kommer simplethen ned til at self.close() 1/4 mikrosekund for sløv i røven... syntes jeg simplethen er for dårligt. *GGG*
Vi tilbyder markedets bedste kurser inden for webudvikling