onkeydown, code in cookie en naar andere url

Status
Niet open voor verdere reacties.

Nemo22

Nieuwe gebruiker
Lid geworden
14 feb 2012
Berichten
4
De bedoeling is om met JS een toets af te vangen, de code te bewaren in een cookie en vervolgens een andere webpagina starten. Ik wil dat doen om later met php en de waarde van de toets terug te lezen uit de cookie om dan weer verder te kunnen. Toets uitlezen in PHP lukt niet en lijkt me ook niet de juiste oplossing.
Nu heb ik geen kennis van JavaScript en maar wat in elkaar gezet en dit werkt niet goed. Als ik alleen window.location="http://www.weblocatie.nl/" en niet document.cookie = "toetspro="+escape(keycode)" in het script zet dan werkt het wel, er komt na een toetsaanslag een nieuwe webpagina van de url.

Wat doe ik fout, mag dit niet in functies? en Hoe krijg ik dit werkend? Graag hulp! Alvast bedankt.

<script type="text/javascript">
document.onkeydown = checkKeycode
function checkKeycode(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
{
document.cookie = "toetspro="+escape(keycode)";
window.location="http://www.weblocatie.nl/";
}
}
</script>
 
Waarom via een koekje, als je de URL write?

[JS]addEventListener('keydown', function(e)
{
window.location = 'http://www.stuffz.nl/?keycode=' + e.which;
}, false);[/JS]

In PHP dan uitlezen:

PHP:
echo $_GET['keycode'];



:thumb:
 
Laatst bewerkt:
Ik denk dat het juist de bedoeling is dat de keycode op de eerste pagina blijft voor als later teruggekeerd wordt.

Ik heb een " weggehaald aan het eind van +escape(keycode). Nu werkt 't prima in mijn browser - als ik terugkom op de eerste pagina, dan document.cookie == "toetspro=16", of iets dergelijks ;)

Misschien vind je 't trouwens fijn om gebruik te maken van dit soort voorgeschreven functies:
(van: http://www.dustindiaz.com/top-ten-javascript)
[JS]function getCookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ';', len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
function setCookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name+'='+escape( value ) +
( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
( ( path ) ? ';path=' + path : '' ) +
( ( domain ) ? ';domain=' + domain : '' ) +
( ( secure ) ? ';secure' : '' );
}
function deleteCookie( name, path, domain ) {
if ( getCookie( name ) ) document.cookie = name + '=' +
( ( path ) ? ';path=' + path : '') +
( ( domain ) ? ';domain=' + domain : '' ) +
';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}[/JS]
 
thks, inderdaad " niet gezien. Leuk dat het nu werkt.
Ik wil de code van de toets nog een keer kunnen gebruiken op dezelfde pagina vandaar via de cookie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan