ugrás a tartalomhoz

GET adatok szövegmezőnek továbbadása

vmarci21 · 2012. Júl. 1. (V), 22.26
Van egy kód a honlapomon ami

x=location.href
y=x.split("?")
x=y[1]
z=x.split("&")
for(i=0;i<z.length;i++)
 {
 k=z[i].split("=")
)
 }
ez a kód feldolgozza a GET adatokat (ami az URL címben a ? után van)

Kérdésem:
Hogyan lehetne megcsinálni azt, hogy ha a változó=nev akkor az értéket berakja a [nev nevű mezőbe] <input class="nev">-be.
 
1

Helló!

Karvaly84 · 2012. Júl. 2. (H), 06.16
Nagyon egyszerűen így lehet:

contact.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Contact</title>
<script type="text/javascript">

function search(name) {
	var pairs = search.pairs || (search.pairs = location.search.substring(1).split("&")), i = 0;
	while (i < pairs.length) {
		if (pairs[i].indexOf(name) > -1)
			return decodeURIComponent(pairs[i].substring(name.length + 1));
		i++;
	}
}

</script>
</head>
<body>
	<fieldset>
		<legend>Kapcsolat felvétel</legend>
		<form name="contact" action="sendmail.php" method="post">
			<table>
				<tr>
					<td>Név:</td>
					<td><input name="name" type="text"></td>
				</tr>
				<tr>
					<td>E-mail:</td>
					<td><input name="email" type="text"></td>
				</tr>
				<tr>
					<td>Üzenet:</td>
					<td><textarea name="message"></textarea></td>
				</tr>
				<tr>
					<td><input type="submit" value="Elküld"></td>
					<td><input type="reset" value="Mégse"></td>
				</tr>
			</table>
		</form>
		<script type="text/javascript">
		
		var fields = document.forms["contact"];
		fields["name"].value = search("name") || "Adja meg a nevét!";
		fields["email"].value = search("email") || "Adja meg e-mail címét!";
		fields["message"].value = search("message") || "Írja meg üzenetét!";
		
		</script>
	</fieldset>
</body>
</html>
Mindent a markup-ba raktam.

Ha meghívod az oldalt paraméterezve akkor kitöltődnek a mezők. Pl.:
http://example.com/contact.html?name=Gipsz Jakab&email=jakab##kukac##mail.com&message=Placeholder for message...
Természetesen lehetne még finomítani de az elv kb. ennyi.

A decodeURIComponent függvényt érdemes használni, de van ez mellet egyéb is. Itt van egy cikk.
2

kösz

vmarci21 · 2012. Júl. 6. (P), 14.10
köszi, tesztelem
3

most így még egyszer ránézve

Karvaly84 · 2012. Júl. 6. (P), 16.26
most így még egyszer ránézve a kódra, a search függvény törzsébe a legelső sorba érdemes lehet egy olyat betenni, hogy name += "="; mert ha pl rákeresel a "var" paraméterre és közben van egy olyan, hogy "variant" akkor a variant előbb fent akad, és rosszul is jön vissza az érték. a return decodeURIComponent(pairs[i].substring(name.length + 1)); sorbol ekkor ki kel venni a +1 -et.
4

köszi

vmarci21 · 2012. Júl. 6. (P), 17.46
köszi, jó lett