Avatar billede learner Praktikant
16. september 2004 - 15:10 Der 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')">

og

function setsession('linenumber'){

}

ret mig endelig hvis jeg tar fejl! :o)

På forhånd tak!
Michael
Avatar billede learner Praktikant
16. september 2004 - 15:13 #1
eller er det bedre at bruge cookies? for så kan den jo også huske næste gang brugeren kommer? Det tror jeg faktisk jeg foretrækker :o)
Avatar billede learner Praktikant
16. september 2004 - 15:30 #2
<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>

Kan det bruges og bygge videre på?????
Avatar billede learner Praktikant
16. september 2004 - 15:51 #3
haaaaalooooo :o)
Avatar billede roenving Novice
16. september 2004 - 15:59 #4
Tålmodighed er en god ting !o]

-- 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.:

<input name="linenumber" type="checkbox" value="44" onclick="if(this.checked)setsession('44')">

    function setsession(linenumber){
        skrivCookie(favorit_lines,linenumber,999999999);
    }
Avatar billede learner Praktikant
16. september 2004 - 16:15 #5
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" .....

Men hvordan laver jeg så de setcookie?
Avatar billede learner Praktikant
16. september 2004 - 21:59 #6
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>


<form name="form" action="file.php" method="post">
<input name="<?php echo $wantsid; ?>" type="checkbox" value="checked" onClick="setsession('<?php echo $wantsid; ?>')">
</form>


Hvad er fejlen(e)

kan man evt lave skrivcookie() lidt mere enkel?

Come on, der må da være nogen der kan hjælpe med det :-)
Avatar billede roenving Novice
18. september 2004 - 14:47 #7
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>

<form name="form" action="file.php" method="post">
<input name="<?php echo $wantsid; ?>" type="checkbox" value="checked" onClick="setsession(this)">
</form>
Avatar billede learner Praktikant
20. september 2004 - 13:39 #8
roenving, smid et svar og få point! Lukker dette spm nu!
Avatar billede roenving Novice
20. september 2004 - 15:03 #9
Oki '-)
Avatar billede learner Praktikant
20. september 2004 - 15:16 #10
velfortjent !
Avatar billede roenving Novice
20. september 2004 - 15:28 #11
Tak for point ;~}
Avatar billede learner Praktikant
20. september 2004 - 15:31 #12
Det er sørme mig der takker her :o)

Åhh, hvor er det dejligt!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester