Avatar billede Slettet bruger
14. juni 2009 - 14:03 Der er 6 kommentarer og
1 løsning

Auto gem funktion

Hej.

Til dem som kender det nye WordPress så gemmer den automatisk en kladde af de nye indlæg man er ved at skrive. Hvordan laver jeg noget magen til?
Avatar billede Slettet bruger
14. juni 2009 - 14:41 #1
Så den skal gemme, hvad der skrives i en tekstboks til et forum eller en blog?
Det skal nok laves med AJAX.
Avatar billede Slettet bruger
14. juni 2009 - 14:44 #2
Jepper.

Den der gør, er faktisk at mens man sidder og skriver, så gemmer den faktisk det man skriver i databasen hvert femte sekund, men uden at den reloader siden, så man kan bare sidde og skrive i ro og mag uden at man bliver forstyrret.
Avatar billede Slettet bruger
14. juni 2009 - 14:53 #3
Ok, det lyder sgu smart - og teknisk set meget let at udføre. Jeg har ikke selv arbejdet med AJAX i praksis, så jeg kan nok ikke være videre behjælpelig :) Til gengæld kan det være, du selv kan finde ud af noget, hvis du sætter dig ind i AJAX. Når først du kender systemet, burde det være til at have med at gøre.
Avatar billede repox Seniormester
14. juni 2009 - 15:40 #4
Nu spørger du godt nok hvordan man laver noget magen til; kunne man eventuelt få at vide hvilket niveau du er på? Skriver du selv dit JS og PHP? Bruger du frameworks eller aner det slet ikke hvor du skal starte eller slutte?
Avatar billede andreas13_fam Nybegynder
14. juni 2009 - 16:02 #5
Det er faktisk meget simpelt, men det høre nok mest under JavaScript, og som hf2ke gør opmærksom på så bør du sætte dig ind i det. Jeg syntes dog aligevel jeg vil komme med et eksempel.

::::::::::::::::::::::::::::::::(Ikke testet)
html fil (index.html)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>AJAX Test</title>
<!-- ====================Metadata==================== -->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="Content-Language" content="da">
    <script type="text/javascript">
            //Opretter XMLhttpObject
        function xmlHttpObject(){
        if (window.XMLHttpRequest) return new XMLHttpRequest();
        if (!window.ActiveXObject) return null;
        var a = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
        var o = null;
        for (var i=0,j=a.length; i<j; i++)
        {try {if(o=new ActiveXObject(a[i]))return o;}catch(e){};}
        return a = o = null;
        }
       
        function ajaxConn(){
            xmlHttp = new xmlHttpObject();
        }
       
        function ajaxSend(sUrl, sParams){
            xmlHttp.open("POST",sUrl,true);
            xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
            xmlHttp.setRequestHeader("Content-length", sParams.length);
            xmlHttp.setRequestHeader("Connection", "close");
            xmlHttp.send(sParams);
        }
    </script>
    <script type="text/javascript">
            //Dette er funktionen der køre hver 5. sekund
        function runAJAX(oTxt){
                //Dette er de POST data der bliver sendt fx $_POST['string']
            var params = '&string='+oTxt.value;
            ajaxConn();
                xmlHttp.onreadystatechange=function()
                {
                    if (xmlHttp.readyState==4)
                    {
                        //hvis fillen blev fundet
                        if (xmlHttp.status==200)
                        {
                            //Når postdata er sendt og respons fra PHP er modtaget
                            Respons = xmlHttp.responseText;
                           
                            //Dette eksempel skriver den tekst der blev modtaget i <span id="span">
                            if (document.getElementById('span').childNodes.length == 0){
                                var Inset = document.createTextNode(Respons);
                                document.getElementById('span').appendChild(Inset);
                            }else{
                                document.getElementById('span').firstChild.nodeValue = Respons;
                            }
                        }
                    }
                }
            ajaxSend('FilDerGemmer.php', params);
        //starter funktion igen om 5 sekunder
        setTimeout(function (){runAJAX(oTxt);},5000)
        }
    </script>
</head>
<body>
    <span id="span">Venter på du skriver noget</span>
    <!-- for at der ikke bruges unødvendige kræfter starter kædereaktionen først når brugeren har løftet fingeren fra tasten -->
    <textarea onkeyup="runAJAX(this);"></textarea>
</body>
</html>

Den fil hvor data bliver sendt til (FilDerGemmer.php)
<?php
//eksempel på PHP fil
header('Content-type: text/plain; charset=utf-8');
if (get_magic_quotes_gpc())
{
    foreach ($_POST as $key => $value)
    {
    $_POST[$key] = stripslashes($_POST[$key]);
    }
}

if (!empty($_POST['string'])){
    //send $_POST['string'] til database
    //if (data blev sendt til database){
        echo 'Data sendt';
    //}
}
else
{
        echo 'Du har ikke skrævet noget';
}
?>
Avatar billede Slettet bruger
23. juni 2009 - 16:40 #6
Hej. Mange tak for alle svarene, men jeg opgav, da jeg alligevel ikke synes der var interesse nok for at få det ind.

Jeg beklager, men hvis i er interesseret i pointene, for hjælpen indtil nu, så smid et svar.

Endnu engang undskyld.
Avatar billede Slettet bruger
06. august 2009 - 17:05 #7
Lukket.
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