22. april 2005 - 13:29
Der er
10 kommentarer og
1 løsning
Sende indhold af tekstfelt videre til popup vindue
Hejsa
Jeg har en formular med et tekstfelt, hvor man selvfølgelig kan skrive noget tekst. Når man trykker submit, åbner der et popupvindue. Alt det virker fint nok, men hvordan kan jeg sende værdien af tekstfeltet videre til popupvinduet med GET el. POST?
Jeg har funktionen til at lave et popupvindue, samt formularen:
<form method="get" onSubmit="PopUp('side.php', 400, 200);return false;" name="form1">
<input type="text" name="brugerinput" size="10">
<input type="submit">
</form>
Mvh. Anders
22. april 2005 - 15:09
#1
Giv popuppen et windowName, som du sætter som target på form-tagget !-)
windowName er den anden parameter i window.open:
window.open(URL, windowName, windowProperties);
-- så du skal kigge i Popup-funktionen, og der kigge efter hvad det er (eller udvide funktionen, så du selv kan bestemme det !-)
-- da vinduet skal initialiseres, før det kan modtage sagen, skal vi lige give browseren tid dertil, så den samlede ting kommer f.eks. til at se sådan ud:
<script type="text/javascript">
function Popup(url,name,width,height){
var t = (screen.availHeight-height)/2;
var l = (screen.availWidth-width)/2;
window.open(url,name,"width=" + width + ",height=" + height + ",top=" + t + ",left=" + l + ",status=no");
}
</script>
<form name="form1" method="get" action="side.php" target="popVindue" onsubmit="Popup(this.action,this.target,400,200);setTimeout(function(){this.submit()},100);return false;">
-- det er dog ikke den mest hensigtsmæssige måde, at udføre opgaven på, da det er svært at være sikker på, om den givne tid er tilstrækkelig til at browseren når at initialisere det nye vindue, så man kunne vende opgaven om, og få popuppen til at submitte:
<script type="text/javascript">
function Popup(url,name,width,height){
var t = (screen.availHeight-height)/2;
var l = (screen.availWidth-width)/2;
var newWin = window.open(url,name,"width=" + width + ",height=" + height + ",top=" + t + ",left=" + l + ",status=no");
var pdoc = newWin.document;
pdoc.open();
pdoc.write('<scr'+'ipt type="text/javascript">window.onload=function(){opener.form1.submit()}<\57sc'+'ipt>');
pdoc.close();
}
</script>
<form name="form1" method="get" action="side.php" target="popVindue" onsubmit="Popup(this.action,this.target,400,200);return false;">
Som det så også indirekte fremgår, kan man jo direkte skrive resultatet ind i popuppen !-)
22. april 2005 - 15:10
#2
Hov, der mangler et r:
pdoc.write('<scr'+'ipt type="text/javascript">window.onload=function(){opener.form1.submit()}<\57sc'+'ript>');
22. april 2005 - 16:56
#3
Hej roenving, og tak for indlægget!
Jeg har kopieret dit eksempel over i mit dokument, og der åbnes et popupvindue, men det er ikke den side, som action="" er sat til, det er bare en tom side der åbner.
Har du et forslag?
Mvh. Anders
22. april 2005 - 17:00
#5
Jeps..
Når jeg trykker vis kilde, i popupvinduet står der:
<script type="text/javascript">window.onload=function(){opener.form1.submit()}</script>
22. april 2005 - 17:11
#6
Det fatter jeg ikke en meter af, jeg håber, der er nogen andre der kan forklare, hvorfor Gecko'en ikke gør det (IE fungerer upåklageligt !-)