webForumDet fria alternativet

Tilldela en inputbox från popup

12 svar · 357 visningar · startad av Jaar

JaarMedlem sedan juli 2001434 inlägg
#1

Jag har en <input type="text" name="test">
Sedan öppnar jag en ny sida med hjälp av en open() funktion.

Hur ska ett javascript se ut för att tilldela den första sidans inputbox ett värde? Vill ha ett script som går att köra i både IE och NS (helst 4.x)

Har även ett <div> som behöver tilldela en input på sidan på liknande sätt, hur görs det?
Helst ska man skicka med vilken inputbox som ska fyllas i till funktionen

<input name="test" OnClick="showDiv(this)">

att öppna o stänga div fönstret har jag redan, så det är tilldelningen jag är intresserad av

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Från popup-fönstret borde du kunna använda window.opener.formnamn.test.value="blaj blaj"

JaarMedlem sedan juli 2001434 inlägg
#3

Ok, såg något om att göra en

window.parent.test.value typ, kan det vara något annars eller?

JojoxxMedlem sedan juni 20004 308 inlägg
#4

window.-etc. pekar på samma fönster som koden ligger i, så det borde inte fungera om du skall peka på ett annat (fönstret som öppnade aktuellt fönster).

CaymMedlem sedan nov. 200119 inlägg
#5

Jag håller på med samma sak. Jag har följande kod:

I min popup:

<a href=\"javascript:window.opener.frmMovie.Cover.Value('$file')\">$file </a>

frmMovie är form:et i sidan där popupen öppnades ifrån. Cover är namnet på <input> fältet och $file är ett värde som generaras av min php kod.

Får detta då jag kopiearar genväg om det är nån hjälp:

javascript:window.opener.frmMovie.Cover.Value('bild1.jpg')

Allt annat är i php.

Jag får inga felmeddelanden utan det händer inget då jag klickar på länken ovan. Har jag totalt gjort fel eller? Uppskattar hjälp och eventuellt nån länk till ett liknande script så man kan checka av,

JaarMedlem sedan juli 2001434 inlägg
#6

Så här blev mitt till slut iaf

På sidan som öppnar popupen :

function popcal(vCaption, pField, pMonth)
{
    var nW = window.open("", "calendar",
        "resizable=no,scrollbars=no,width=200,height=220");
    nW.location.href = "calendar.jsp?pField=" + pField + "&pMonth=" + pMonth;
    nW = null;
}

pMonth behövs givetvis inte, det är bara en parameter jag använder. pField är vilket fält som ska öppnas

I popup fönstret har jag följande javascript

<SCRIPT LANGUAGE="JavaScript">
<!--
  function ignore()
  {
    return true;
  }

	function returndate(pDate, pField)
  {
		window.onerror=ignore;
		eval("window.opener." + pField + ".value='" + pDate + "';");
		self.close();
	}
//-->
</SCRIPT>

När jag anropar funktionerna ser det ut så här

<a href="javascript:popcal('A Sample Calendar','document.form.myInputName','0');">

samt i popupen

<a href="javascript:returndate('2002-0618','[FÄLTPARAMETER]')">

Detta funkar både i NS 4.x samt IE för min del. Hoppas det löser sig för dig

CaymMedlem sedan nov. 200119 inlägg
#7

Tack så mycket. Hittade även ett par script på javascript.com och med ditt och dom så ska det nog lösa sig.

CaymMedlem sedan nov. 200119 inlägg
#8

En fråga. I min popup har jag bara en lista av filer...kör en opendir() och readdir() i php. Då har jag inga <input> fält eller forms. Går det fortfarande via att klicka på filnamen (som jag gjort till länk) och skicka info till ett <input> fält på "första" sidan?

JaarMedlem sedan juli 2001434 inlägg
#9

Min version är så...

Första sidan

<SCRIPT ...>
function openPopup(pField)
{
    var nW = window.open("", "namn",
        "resizable=no,scrollbars=no,width=200,height=220");
    nW.location.href = "fil.html?pField=" + pField;
    nW = null;
}
</SCRIPT>

<FORM NAME="myForm">
<INPUT TYPE="TEXT" NAME="minInput">
<a href="javascript:openPopup('document.myForm.minInput');">
</FORM>

i Popupen

<SCRIPT LANGUAGE="JavaScript">
<!--
  function ignore()
  {
    return true;
  }

	function returndate(pDate, pField)
  {
		window.onerror=ignore;
		eval("window.opener." + pField + ".value='" + pDate + "';");
		self.close();
	}
//-->
</SCRIPT>

<a href="javascript:returndate('$file','$pField')">$file'</a>
<a href="javascript:returndate('$file','$pField')">$file'</a>

Nu kan jag inte php så du får nog rätta den delen, men $file är ditt filnamn som du vill returnera. $pField är den request parameter som anger vilken input field som det ska returneras till
(i klartext i exemplet : document.myForm.minInput)

Hoppas du får ordning på det.

CaymMedlem sedan nov. 200119 inlägg
#10

Gjorde ditt exempel med följande på första sidan:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function openPopup(pField)
{
    var nW = window.open("", "namn",
        "resizable=no,scrollbars=no,width=200,height=220");
    nW.location.href = "popup.html?pField=" + pField;
    nW = null;
}
</SCRIPT>
</head>
<body>

<FORM NAME="myForm">
<INPUT TYPE="TEXT" NAME="minInput">
<a href="javascript:openPopup('document.myForm.minInput');">Popup</a>
</FORM>

</body>
</html>

och följande i popupen:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
  function ignore()
  {
    return true;
  }

	function returndate(pDate, pField)
  {
		window.onerror=ignore;
		eval("window.opener." + pField + ".value='" + pDate + "';");
		self.close();
	}
//-->
</SCRIPT>
</head>

<body>
<a href="javascript:returndate('Värde1','pField')">Testlänk1</a>
<a href="javascript:returndate('Värde2','pField')">Testlänk2</a>

</body>
</html>

Jag får inga felmeddelanden och sånt men det händer som inget då jag trycker på länkarna i popupen. Kör inte med php nu när jag testar.

Är lite skum i huvet så jag lär säkert missat nått. Dock har jag en fråga. Där där "namn" i första funktionen vad är det för nått? Sen så behöver jag väl inte ändra nått med pField?

JaarMedlem sedan juli 2001434 inlägg
#11
<a href="java script:returndate('Värde1','pField')">Testlänk1</a>

ändras till 

<a href="java script:returndate('Värde1','document.myForm.minInput')">Testlänk1</a>

Dessa rader

  function ignore()
  {
    return true;
  }

  window.onerror=ignore;

är det som gör att du inte får några felmeddelanden
avmarkera window.onignore = ignore så kommer felmeddelandena som vanligt

Nu ska det fungera

Anledningen till att jag har så långt field namn är att scriptet lätt ska kunna lyftas ut o användas på vilken sida som helst.

JaarMedlem sedan juli 2001434 inlägg
#12

Glömde frågorna

<I>"Är lite skum i huvet så jag lär säkert missat nått. Dock har jag en fråga. Där där "namn" i första funktionen vad är det för nått? Sen så behöver jag väl inte ändra nått med pField?"</I>

namn är namnet på det nya popupfönstret tror jag. Så om du skriver target="namn" i en länk så hamnar det där (tror det är så iaf)

pField heter min parameter som jag skickar till sidan (en queryString asså).

CaymMedlem sedan nov. 200119 inlägg
#13

Ahh det funkar. Du är en hjälte Jaar. :birp

137 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)