Autosave onkeydown

ev0lst

Erfahrenes Mitglied
Hallo.

Wie kann ich es am besten anstellen, dass sich einträge, also Formularfelder zwischendurch abspeichern lassen wenn ich etwas geschrieben habe? Natürlich ohne Post oder Page-Reload.

Vor allem die Frage, ob es Sinn macht und keine DB-Überlastung.
 
Du könntest per Ajax das Formular alle, was weiß ich, 10 Sekunden an den Server übermitteln, und es per PHP in eine Datei oder DB schreiben. Was aber von der Serverlast her nicht sehr sinnvoll ist.
Außerdem: Warum willst du "zwischenspeichern"? Dafür gibt's doch Apfel (bzw. Strg)+C

Gruß,
sc.
 
Ok, das habe ich mir gedacht.

Zum copy & save:

Mal ehrlich, wer macht sowas denn regelmäßig? Es (Stromausfall etc.) passiert immer dann, wenn man es nicht erwartet. Außerdem überlasse ich ungerne Dinge dem Zufall ;)

Gibt es Alternativen?
 
Sowas wird ja auch schon gebraucht,

schau mal bei Googlemail, die Emails werden automatisch als Entwürfe gespeichert.

Evtl. kannst du dir ja dort was abgucken.

MfG bigboombang
 
Hallo,

ich habe noch ein Beispiel für das speichern in Cookies:

HTML:
<html>
<head>
       <title>Title here!</title>
</head>
<script type="text/javascript">
function SetCookie(name, value)
{
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape(value) +
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
}

function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";",offset);
	if (endstr == -1)
	{
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0)
			break;
	}
	return null;
}

function DelCookie(name)
{
	now = new Date();
	document.cookie = name+"=; expires="+now.toGMTString();
}

function write()
{
	var content = GetCookie('Post_User').split('::');
	document.getElementById('titel').value = content[0];
	document.getElementById('post').value = content[1];
	
	DelCookie('Post_User');
}

function savepost(nosave)
{
	if ( !nosave )
	{
		var titel = document.getElementById('titel').value;
		var post = document.getElementById('post').value;
		SetCookie('Post_User', titel+'::'+post);
	}
	
	window.setTimeout('savepost();', 10000);
}

function check()
{
	if ( GetCookie('Post_User') != (null || "::") )
	{
		document.getElementById('old').innerHTML = "Du hast schon einen Beitrag angefangen, dieser wurde aber unterbrochen!<br>Klicke <a href='javascript:write();'>hier</a>, um deinen Beitrag wiederherzustellen!";
	}
}

</script>

<body onLoad="savepost(true); check();">
<span id="old"></span>
Beitrag:<br>
<table>
<tr style="background-color:Gray;"><td>Titel:</td><td><input id="titel" name="titel"></td></tr>
<tr style="background-color:Gray;"><td>Post:</td><td><input id="post" name="post"></td></tr>
</table>
</body>
</html>

Edit: Habs etwas verbessert, so gut wie ichs konnte.

Ich hoffe, dass das für dich hilfreich ist.

MfG
Fabsch
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück