webForumDet fria alternativet

Skicka värde från popup till formulär?

JavaScript

10 svar · 468 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Hej,

Jag jobbar med ett artikelscript där man för att infoga en bild öppnar "bildgalleriet" som öppnas i ett popup-fönster. Bilderna radas upp och man ska då kunna klicka på en bild för att infoga hela <img>-taggen i forumläret på huvudsidan där muspekaren är placerad. När man klickat på en bild ska också pop-up fönster stängas.

Mitt formulär heter "article" och textfältet heter "article_text". Jag sökte lite och hittade följande kod som inte funkar riktigt.

echo "<a href=\"#\" onClick=\"parent.article.article_text.value='$name'; return false;\"><img src=\"../img/uploads/$name\" width=\"100px\" height=\"100px\" title=\"Uppladdad: $date • $description\" border=0></a>";

Medlem sedan dec. 20025 483 inlägg
#2

Hej!

Testa

<a href="javascript:void(window.opener.document.forms['article'].elements['article_text'].value='$name')"><img/></a>
Medlem sedan jan. 20011 140 inlägg
#3

Peter S: Tack för svaret. Det funkar, nästan :) När man klickar på en bild för att infoga den till textrutan så försvinner allt annat som är i textrutan. Sedan stängs inte fönstret.

Medlem sedan dec. 20025 483 inlägg
#4

Ja, just det :r

function f()
{
  window.opener.document.forms['article'].elements['article_text'].value += '$name';
  window.close();
}
<a href="javascript:void f()"><img/></a>
Medlem sedan jan. 20011 140 inlägg
#5

Hmm, det funkar ju bättre. Men nu skriver den ju bara ut $name, istället för det riktiga namnet.

Medlem sedan dec. 20025 483 inlägg
#6

$name är väl en PHP-variabel varför den raden får skrivas ut med exempelvis echo.

Medlem sedan jan. 20011 140 inlägg
#7

Jo precis, nu hänvisar ju länken till scriptet i <head>-taggen, och det är där namnet hämtas. Kan man inte hämta namnet i <a href=\"javascript:void f()\">-taggen istället?

Medlem sedan dec. 20025 483 inlägg
#8

Menar du så här

function f(str)
{
  window.opener.document.forms['article'].elements['article_text'].value += str;
  window.close();
}
<a href="javascript:void f('<?php echo $name; ?>')"><img/></a>
Medlem sedan jan. 20011 140 inlägg
#9

Tack Peter det funkade perfa efter en mindre ändring.

echo "<a href="javascript:void f('<img src=img/$name>')"><img/></a>";

Jag passar på att ställa en till fråga. Som inte har med detta scriptet att göra. Jag har knappar där jag kan välja att infoga bold, italic eller en länk till samma formulär.

<input type="button" value=" Infoga fet text " onClick="t(this.form, 'b')" class="button"><br/>

Och javascript-koden ser ut så här:

<script type="text/javascript">
function trim(s){
    return s.replace(/(^\s+)|(\s+$)/g, "");
}

function t(f, t){
    var txt = window.prompt("Skriv text som skall vara mellan <" + t + ">xxx</" + t + ">", "");

    if (txt != null && trim(txt).length != 0){
        f.elements["article_text"].value += "<" + t + ">" + txt + "</" + t + ">";
    }
}

function lnk(f, t){
    var txt = window.prompt("Skriv texten som ska länkas", ""),
	url = "";

    if (txt != null && trim(txt).length != 0){
	url = window.prompt("Skriv adressen, inkludera alltid http://", "http://");

	if (url != null && trim(url).length != 0){
	    f.elements["article_text"].value += "<" + t + " href =" + url + " target=_blank>" + txt + "</" + t + ">";
	}
    }
}
</script>

Jag vill istället för knapparna länka bilder till samma funktion, men jag får det inte att funka!

Medlem sedan dec. 20025 483 inlägg
#10

Då kan du göra så här:

<img style="cursor:pointer" onclick="t([red]document.forms['namn_på_formulär'][/red],'b')">
Medlem sedan jan. 20011 140 inlägg
#11

Ja det funkade ju prima, tyckte att jag försökte med många olika kodsnuttar. Men tydligen inte rätt :) Tack för svaren Peter!

253 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)