Avatar billede sesam Nybegynder
03. februar 2004 - 12:13 Der er 5 kommentarer og
2 løsninger

Submit af form åbne pop up vindue

Hvordan kan jeg via en form submit åbne et pop up vindue og i det nye vindue vise værdierne af mine input felter...?
Avatar billede mm12010 Nybegynder
03. februar 2004 - 12:21 #1
hvis du henter værdierne med ex. asp kan du gøre sådan:

<form name="formular" method="post" action="fil.asp" target="popForm">
  <input type="text" name="info">
  <input type="button" name="knap" value="send" onClick="window.open('about:blank','popForm','width=320,height=270'); this.form.submit();">
</form>
Avatar billede o-zone Nybegynder
03. februar 2004 - 12:41 #2
prøv den her:
---8<----[form vindue]------
<body>
<script language="javascript" type="text/javascript">
function showPopup(){
    paramStr = "?";
    for(var i=0;i<(document.forms[0].elements.length-1);i++) { // length-1 fordi submitknappen også er et element
        paramStr = paramStr + document.forms[0].elements[i].name + "=" + escape(document.forms[0].elements[i].value) + ";";
    }
    paramStr = paramStr.substr(0,paramStr.length-1); // fjerner det sidste ";"
    window.open("popUp.htm"+paramStr,"_blank","width=300,height=200");
}   
</script>
<form onsubmit="showPopup(); return false;">
    Indtast fornavn:<br>
    <input type="text" name="fornavn"><br>
    Indtast efternavn:<br>
    <input type="text" name="efternavn"><br>
    <input type="submit" value="send">
</form>

</body>
----------------------------

og

-8<------[popup vindue]-----
<body>
<table border="0" cellspacing="0" cellpaddinge="3">
<script language="javascript" type="text/javascript">
    var qString = location.search.substr(1);
    var elementer = qString.split(";");
    for(var i=0;i<elementer.length;i++){
        var tmpElem = elementer[i].split("=");
        document.write("<tr><td><b>"+tmpElem[0]+":</b></td><td>"+unescape(tmpElem[1])+"</td></tr>\n");
    }
</script>
</table>

</body>
----------------------------
Avatar billede o-zone Nybegynder
03. februar 2004 - 12:46 #3
Den måde jeg bygger paramStr op på virker kun hvis alle formelementerne er af typen text (og du ikke har flere form elementer - har du f.eks. også en reset knap skal du lade løkken gå til document.forms[0].elements.length-2!)
Har du f.eks. radio og check buttons med i formen skal den laves om.

Hvis det er en form du ikke ændrer så ofte, så er det heller ikke nødvendigt at den er så fleksibel. Så kan du bare hardcode felterne ind i din paramStr! Hovedsagen er ad den bliver bygget op efter formatet:
?parameter1Name=parameter1Value;parameter2Name=parameter2Value;...parameterNName=parameterNValue"

(-:H@zze
Avatar billede o-zone Nybegynder
03. februar 2004 - 12:59 #4
hmmm ... og det er selvfølgelig "cellpadding" og ikke "cellpaddinge" i popup vinduet (men det er ikke en showstopper i sløsede browsere ;-) )
Avatar billede sesam Nybegynder
03. februar 2004 - 13:38 #5
o-zone: Hvis jeg nu har et input felt der heder name og et der hedder email hvordan skal den så bygges op.
Problemet er at den også tager knappen's værdi med og skriver ud på skærmen...
Avatar billede mm12010 Nybegynder
03. februar 2004 - 15:10 #6
<script language="javascript" type="text/javascript">
function showPopup(){
    el=document.forms[0].elements;
    paramStr="?";
    for(i=0;i<el.length);i++){
        paramStr+=(el[i].type=="text")?el[i].name+"="+escape(el[i].value)+";":"";
        }
    paramStr=paramStr.substr(0,paramStr.length-1);//fjerner det sidste ";"
    window.open("popUp.htm"+paramStr,"blank","width=300,height=200");
    }   
</script>
Avatar billede o-zone Nybegynder
03. februar 2004 - 18:25 #7
ja - eller endnu mere simpelt (forudsat at du KUN har de to nævnte felter, og at det ikke er noget der ændrer sig jævnligt:

function showPopup(){
  var paramStr = "?name="+escape(document.minForm.name.value)+";email="+escape(document.minForm.email.value);
  window.open("popUp.htm"+paramStr,"blank","width=300,height=200");
}

(-:H@zze
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