Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tekstiä linkillä

Smuliii [29.01.2009 18:21:36]

#

Tarkoitus olisi tehdä linkki, joka lisäisi tekstikenttään (input) tekstiä linkkiä painettaessa ilman, että sivu latautuisi uudelleen. Eli javascript/ajax on varmaankin tekotapana. Niistä ei kuitenkaan ole juurikaan tietämystä niin apuja kaivattaisiin ja paljon. Jos tämä on siis mahdollista toteuttaa. Mielestäni olen jossain nähnyt tälläistä joskus mutta, jospa ei ole edes mahdollista niin pitää varmaan soveltaa. PHP:llähän tämä olisi helppo toteuttaa mutta nyt haetaan toteutusta ilman sivun uudelleen lataamista.

Juhko [29.01.2009 18:32:00]

#

Jos ymmärsin oikein, niin:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>

	<head>
		<title></title>
	</head>
	<body>
<script language="javascript">
function kirjoita()
{
document.formi.inputti.value=document.formi.inputti.value+"tekstiä ";
}
</script>
<a href="javascript:kirjoita()">klikka häär</a>
<form name="formi">
<input name="inputti">
</form>

	</body>
</html>

Metabolix [29.01.2009 18:58:17]

#

Jos tiedät tekstin siinä vaiheessa, kun sivu ladataan, Juhkon metodi sopii hyvin. JS:n voi tietenkin tulostaa PHP:stä käsin. Jos taas et tiedä tekstiä etukäteen vaan haluat hakea sen palvelimelta, voit yhdistää siihen vielä AJAX-oppaan esimerkin.

Smuliii [29.01.2009 19:06:17]

#

Täydellinen tuo Juhkon esimerkki muuten paitsi, että mitäs kun linkkejä on monta? Täytyykös tehdä yhtä monta scriptiä kuin linkkejä haluaa vai onko yksinkertaisempi tapa? Ja tekstit tiedetään jo etukäteen.

Joka tapauksessa kiitos koodista!

E: Tarkemmin kun ajattelee niin pakkohan on tehdä funktioita niin paljon kuin linkkejäkin..

Metabolix [29.01.2009 19:19:56]

#

function lisaa(id, str) {
  var b = document.getElementById(id);
  b.value = b.value + str;
}
<textarea id='laatikko'></textarea>
<ul>
<li><a onclick='lisaa("laatikko", "Moikka!");'>Lisää Moikka!</a></li>
<li><a onclick='lisaa("laatikko", this.innerHTML);'>Lisää tämä sisältö tästä!</a></li>
</ul>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta