Avatar billede lopolla123 Nybegynder
14. december 2005 - 10:11 Der er 1 kommentar og
1 løsning

Basal javascript - om funktioner

Jeg er rutineret i PHP, men har egentlig altid bevæget mig uden om javascript, men er begyndt at kigge lidt på det nu :-)

Jeg har set nogle funktioner, hvor man kan toggle hide/unhide til/fra. Problemet er, at når man refresher sin browser så vil den komme tilbage til sin default-værdi (fx. unhidden).

Min tanke var at koble cookies på (hvis der findes en bedre måde - sig endelig til!)

Her har jeg så lavet flg. funktion

function toogle_cookie(name, val)
{
    delete_cookie(name)

    if(val == "True")
    {
        set_cookie(name, "False")
        var test = "1";
    }

    else
    {
        set_cookie(name, "True")
        var test = "2";
    }
   
    document.write(test);
}


<script type="text/javascript">
    var CookieVal    = get_cookie(CookieName)
    document.write(CookieVal);
</script>

<a href="#" onClick="toogle_cookie(CookieName, CookieVal);">toggle</a></span><br /><br />


Mit problem er, at når jeg i funktionen har document.write så skifter: document.write(CookieVal); fra false->true->false, etc.... Hvis jeg IKKE har document.write så skifter værdien ikke.

Meningen er så herefter at koble hide/unhide på - på baggrund af true/false (er dette en OK måde at gøre det på?)

Hvis der er noget helt har misforstået sig gerne til, og er der nogle gode steder at lære javascript så skriv endelig et par links ned :-)

ps.
Her ud over er der en række andre cookie-funktioner som lige nu egentlig virker ok :-)

Jeg ser frem til at høre fra jer :-)
Avatar billede lopolla123 Nybegynder
15. december 2005 - 00:02 #1
Jeg fandt en løsningen, der GARANTERET kan forbedres, men hvis andre har et lignende problem - så er der en mulig løsning her :-)
Avatar billede lopolla123 Nybegynder
15. december 2005 - 00:02 #2
<html>
<head>

<!-- <script type="text/javascript" src="Javascript.js"></script> -->

<style type="text/css">
    .expand { position: absolute; visibility: hidden; }
    .collapse { position: relative; visibility: visible; }
</style>

<script type="text/javascript" language="javascript">

    function toogle_cookie(name, val)
    {
        delete_cookie(name);

        if(val == "True")
        {
            set_cookie(name, "False")
        }

        else
        {
            set_cookie(name, "True")
        }
    }

    // Setting cookies
    function set_cookie(name, value, exp_y, exp_m, exp_d, path, domain, secure)
    {
        var cookie_string = name + "=" + escape ( value );
   
        if (exp_y) //delete_cookie(name)
        {
            var expires = new Date ( exp_y, exp_m, exp_d );
            cookie_string += "; expires=" + expires.toGMTString();
        }
       
        if(path)
        {
            cookie_string += "; path=" + escape ( path );
        }

        if(domain)
        {
            cookie_string += "; domain=" + escape ( domain );
        }
       
        if(secure)
        {
            cookie_string += "; secure";
        }
       
        document.cookie = cookie_string;
    }

    // Retrieving cookies
    function get_cookie(cookie_name)
    {
        var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');
       
        if(results)
        {
            return (unescape(results[1]));
        }
       
        else
        {
            return null;
        }
    }

    // Delete cookies
    function delete_cookie(cookie_name)
    {
        var cookie_date = new Date();  // current date & time
        cookie_date.setTime(cookie_date.getTime()-1);
        document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
    }


var CookieName    = 'MyName1'
var CookieVal    = get_cookie(CookieName);

if(CookieVal == "Open")
{
    var tableToggle = true;
}

else
{
    var tableToggle = false;
}



function toggletable(IdName, CookieName)
{
    var temp = document.getElementById(IdName);
    if(tableToggle)
    {
        tableToggle = false;
        temp.style.position = 'absolute';
        temp.style.visibility = 'hidden';
        delete_cookie(CookieName);
        set_cookie(CookieName, 'Closed');
    }
   
    else
    {
        tableToggle = true;
        temp.style.position = 'relative';
        temp.style.visibility = 'visible';
        delete_cookie(CookieName);
        set_cookie(CookieName, 'Open');
    }
}

</script>

</head>
<body>


<br>

<table bgcolor="#FFCC99" width="600" cellspacing=0 border=0>
<tr>
  <td>
  <p><a href="java script:toggletable('thistable', CookieName);">toggle a table visible/invisible</a>
  </td>
</tr>
</table>
<div>

<script type="text/javascript">

    var CookieVal = get_cookie('MyName1');

    if(CookieVal == "Open")
    {
        var Show = "<table bgcolor='#FFFFCC' width='300' cellspacing=0 border=0 id='thistable' class='collapse'><tr><td><b>Toggle Table:</b><br> Here is the content of a table which hides and shows.</td></tr></table>";
    }

    if(CookieVal == "Closed")
    {
        var Show = "<table bgcolor='#FFFFCC' width='300' cellspacing=0 border=0 id='thistable' class='expand'><tr><td><b>Toggle Table:</b><br> Here is the content of a table which hides and shows.</td></tr></table>";
    }

    document.write(Show);

</script>

</div>
<table bgcolor="#FFCC99" width="600" cellspacing=0 border=0>
<tr>
  <td>
  <p>Filler
  </td>
</tr>
</table>

</body>
</html>
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