Avatar billede kjeldsted Novice
27. december 2008 - 15:32 Der er 13 kommentarer og
1 løsning

Opdatere ét vindue via et andet.

Hej alle.

Jeg har en side, der bliver åbnet i et nyt, lille vindue (efter at brugeren klikker på et link). På denne nye side har vi så en form. Jeg ønsker nu at når man klikker på submit knappen på det lille vindue skal det store hovedvindue videre stilles til en ny adresse (med informationerne fra formen i URL'en).

Håber det er nogenlunde til at forstå, ellers må i spørge.
Avatar billede olebole Juniormester
27. december 2008 - 16:36 #1
<ole>

Det er det ikke helt, men jeg prøver  =)
Vinduet, der åbnede popup'en kan adresseres med 'opener' fra popup'en:

    opener.location.href = document.getElementById("felt").value;

- hvilket naturligvis kræver, der i popup'en ligger et felt med id="felt". Prøv det  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
27. december 2008 - 16:39 #2
NB: opener refererer til det åbnende vindues window objekt. Skulle du skrive noget i et felt i åbnervinduet, skulle der stå:

    opener.document.getElementById("felt_i_side").value = document.getElementById("felt_i_popup").value

Så håber jeg, det er forståeligt  =)
Avatar billede kjeldsted Novice
27. december 2008 - 16:56 #3
Øh, jeg er nu ikke helt med.

Skal jeg i popup vinduet skrive:

opener.location.href = document.getElementById("felt").value;

Eller?
Avatar billede tjens Nybegynder
27. december 2008 - 17:04 #4
Ja, hvis felt indeholder hele den nye url.

En anden mulighed er at kalde en javascript function i opener med en parameter fra popupen:

index.html:
<html>
<head>
<script type="text/javascript">
var popwin;
function changeLocation(strParm) {
    popwin.close();
    var url = "Index2.html?parm=" + strParm;
    if (confirm('Go to ' + url + '?')) {
        location.href = url;
  }

function init() {
    popwin = window.open( 'popupreturn.html', '_blank', "height=200,width=200,status=no,toolbar=no,menubar=no,location=no");
}
</script>
</head>
<body onload="init();">
<p>Test value from popup</p>
</body>
</html>


popupreturn.html:
<html>
<body>
<form action="" onsubmit="opener.changeLocation(this.message.value); return false;">
    <input name="message" type="text" value="type your message here" onfocus="this.select();">
    <input type="submit">
</form>
</body>
</html>
Avatar billede kjeldsted Novice
27. december 2008 - 17:12 #5
Hvis vi nu holder os til den første, først ;)

Jeg har lavet en test side (test.php), hvor jeg åbner et test popup side (test2.php).

popup siden indeholder nu følgende.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript">
opener.location.href = document.getElementById("felt").value;
</script>
</head>

<body>
<div id="felt">http://runja.dk/runja/test3.php</div>
<form name="search">
    <input type="text" name="keyword">
    <input type="button" value="Søg">
</form>
</body>
</html>

Hvad skal jeg så her fra...?
Avatar billede tjens Nybegynder
27. december 2008 - 19:16 #6
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript">
function send(kw) {
    opener.location.href = 'http://runja.dk/runja/test3.php?keyword=' + kw;
}
</script>
</head>
<body>
<form name="search" action="" onsubmit="send(this.keyword.value); return false;" >
    <input type="text" name="keyword">
    <input type="submit" value="Søg">
</form>
</body>
</html>
Avatar billede olebole Juniormester
27. december 2008 - 19:20 #7
- og formen er ganske overflødig:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript">
function send() {
    var kw = document.getElementById("keyword").value;
    opener.location.href = 'http://runja.dk/runja/test3.php?keyword=' + kw;
}
</script>
</head>
<body>
<p><input type="text" id="keyword"></p>
<p><input type="button" value="Søg" onclick="send()"></p>
</form>
</body>
</html>
Avatar billede olebole Juniormester
27. december 2008 - 19:21 #8
Ups ... '</form>' skal selvfølgelig også væk  =)
Avatar billede olebole Juniormester
27. december 2008 - 19:23 #9
- og så bør du faktisk skrive:

function send() {
    var kw = encodeURIComponent(document.getElementById("keyword").value);
    opener.location.href = 'http://runja.dk/runja/test3.php?keyword=' + kw;
}

- hvis der kan forekomme specialtegn i strengen ... og det kan der jo nok  ;o)
Avatar billede kjeldsted Novice
28. december 2008 - 12:06 #10
Det er jo super fedt det dér... Godt arbejde drenge :-)

Så vidt jeg husker er olebole ikke den store point samler... Men hvis tjens vil have lidt for arbejdet så smid et svar...

Og mange, mange tak...
Avatar billede kjeldsted Novice
28. december 2008 - 12:23 #11
Desuden jeg har lige én ting til...

Nu har jeg også nogle checkbokse på siden. Disse skal hedder 1 hvis de er aktiveret. Men hvis jeg benytter getElementById('id').value skriver den jo én lige meget hvad. Hvordan får jeg løst dette?
Avatar billede roenving Novice
28. december 2008 - 12:37 #12
Ved at teste om den aktuelle checkbox er checked, f.eks. sådan:

function showCheckValue(elm){
  var ch = document.getElementById(elm);
  return ch.checked ? ch.value : "";
}

-- og du forveksler nok ole med andre, når du snakker om point-'forskrækkelse' ...
Avatar billede kjeldsted Novice
28. december 2008 - 12:51 #13
Super... Virkede perfekt...

Til jer der har hjulpet og vil have points... Smid et svar...
Avatar billede kjeldsted Novice
26. april 2009 - 12:41 #14
Lukker
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