16. september 2004 - 15:10Der er
11 kommentarer og 1 løsning
Jeg skal lave en husk funktion, men ved ikke hvordan endnu
Hej, jeg skal lave en husk-funktion som fungerer således:
Jeg har en liste og for hver linie er der en checkbox som man kan sætter flueben i. Jeg vil gerne have javascript til at sætte en cookie eller session når man sætter fluebenet samt alert('noget'). Og hvis man fjerner fluebenet skal javascript også fjerne den i session. det skal nok helst i et session array. feks $_session['valgte_linier'] eller noget lign.
Hvordan kan det laves?
Jeg gætter på noget med: <input name="linenumber" type="checkbox" value="44" onChange="setsession('44')">
<script language="JavaScript" type="text/JavaScript"> <!-- function setsession(linenumber){ find ud af om den er vinklet af eller ej??? if(den er vinklet af){alert('X'); setcookie(favorit_lines,linenumber,999999999);} else {setcookie(favorit_wantsids,wantsid,-3600);} } //--> </script>
-- du kan, såvidt jeg ved, ikke skrive session-variabler direkte (selv om de vist fungerer ved hjælp af cookies !-)
Men her er mine standard cookie-funktioner (som vist trænger til en modernisering -- men de virker !-)
<script language="javascript" type="text/javascript"> function skrivCookie(name,value,expTime,path){//Tid i dage switch(skrivCookie.arguments.length){ case 1: var expTime = 0; var path = "/"; case 2: var expTime = 0; var path = "/"; case 3: var path = "/"; } var exp = new Date().getTime()+expTime*24*60*60*1000; exp = new Date(exp).toGMTString(); var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=" + path; document.cookie = cook; } function hentCookie(name){ if (document.cookie){ var n = document.cookie.indexOf(name+"="); if (n>-1){ var val = document.cookie.substring(n+name.length+1); n = val.indexOf(";"); if(n>-1)val=val.substring(0,n); return unescape(val); } }else return null; } </script>
-- at finde ud af, om et felt er checked af er rasende nemt i feltet, så f.eks.:
Jeg har næsten selv lavet det nu. Jeg mangler blot at sætte cookien. Kan du ik skrive hvordan man sætter en cookie på den helt basale måde. Jeg kan umiddelbart ikke læse det herover. er det noget med:
document.cookie = (navn,værdi,tid);
eller hvordan gør jeg det?
Her er det jeg har lavet, har ikke prøvet det af endnu, men mon ik det er nogenlunde.
function setsession(wantsid){ var status = document.form.wantsid.value; if(status=="checked"){ setcookie(favorit_wantsids,wantsid,999999999); alert('Efterlysningen er føjet til dine foretrukne'); }else{ setcookie(favorit_wantsids,wantsid,-3600); alert('Efterlysningen er fjernet fra dine foretrukne'); } }
<input name"44" type="checkbox" value="checked" onChange="setsession('44')"> // og 44 sættes af php!... // og <form name=form" .....
Nu er det lavet, men jeg får en scriptfejl + jeg får ikke den besked(alert) som jeg skal. Jeg har endnu ikke tjekket om cookien bliver sat.
Hvor opstår min scriptfejl? Hvad skal der til for at det virker?
<script language="JavaScript" type="text/JavaScript"> <!-- function skrivCookie(name,value,expTime,path){//Tid i dage switch(skrivCookie.arguments.length){ case 1: var expTime = 0; var path = "/"; case 2: var expTime = 0; var path = "/"; case 3: var path = "/"; } var exp = new Date().getTime()+expTime*24*60*60*1000; exp = new Date(exp).toGMTString(); var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=" + path; document.cookie = cook; }
function setsession(wantsid){ var status = document.form.wantsid.value; if(status=="checked"){ skrivCookie(favorit_wantsids,wantsid,999999999); alert('Efterlysningen er føjet til dine foretrukne'); } if(status!="checked"){ skrivCookie(favorit_wantsids,wantsid,-3600); alert('Efterlysningen er fjernet fra dine foretrukne'); } } //--> </script>
Hvis du præcis ved hvad du laver med dine cookies, behøver den jo ikke være så generaliseret !-)
-- og script-fejlen vil jeg gætte på kommer fra, at du ikke har en defineret variable, som hedder favorit_wantsids ...
<script language="JavaScript" type="text/JavaScript"> <!-- function skrivCookie(name,value,expTime){//Tid i dage var exp = new Date().getTime()+expTime*24*60*60*1000; exp = new Date(exp).toGMTString(); var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=/"; document.cookie = cook; }
function setsession(wantsid){ var status = wantsid.value; if(status=="checked"){ skrivCookie('favorit_wantsids',wantsid.name,999999999); alert('Efterlysningen er føjet til dine foretrukne'); } if(status!="checked"){ skrivCookie('favorit_wantsids',wantsid.name,-3600); alert('Efterlysningen er fjernet fra dine foretrukne'); } } //--> </script>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.