Gå til innhold

AJAX uføre PHP MySQL-query hvert minutt


Anbefalte innlegg

Holder på med en nettbasert applikasjon som lar brukere skrive dokumenter, og lagre de i databasen.

 

Sånn som det er nå, må brukeren manuelt klikke på en knapp for å lagre det de har skrevet.

 

Det jeg ønsker er at en javascript/AJAX-funksjon ligger i bakgrunnen og hele kjører et mysql_query som oppdaterer databasen med informasjonen fra tekstfelte uten at brukeren behøver å gjøre noe som helst. Omtrent som Gmail's måte å autosave drafts på.

 

Har søkt meg halvt ihjel, men finner bare henvisninger til cron og event manager :<

 

Hva bør jeg søke etter? Hvilket rammeverk anbefales?

Lenke til kommentar
Videoannonse
Annonse

Har lest litt nå, og når jeg kjører følgende kodesnutt, utfører den handingen bare 1 gang.

 

<?php $c = "1"; ?>
<script type="text/javascript">

function timedCount()
{
document.getElementById('txt').value="<?php echo $c; $c = $c + "1"; ?>";
setTimeout("timedCount()",1000);
}

function doTimer()
{
 timedCount();
}
</script>

 

Tekstboksen txt stopper på 1.

Jeg forstår ikke hva som er galt :(

Endret av lefsaker
Lenke til kommentar

Jeg ønsker følgende egentlig:

<script type="text/javascript">

function timedCount()
{
<?php
$innhold = //Innholdet i textarea uten at brukeren submitter formen
mysql_query("update tabell set innhold='$innhold'");
?>
setTimeout("timedCount()",1000);
}

function doTimer()
{
 timedCount();
}
</script>

Men det er tydelig vis ikke så enkelt :p

Endret av lefsaker
Lenke til kommentar

Siden inneholder henholdsvis en textbox (title), et textarea (content), og en submit-knapp.

 

Dersom brukeren klikker på submit-knappen, sendes skjemaet, og et mysql_query blir utført som oppdaterer databasetabellen med title og content.

 

Foreløpig null problem.

 

 

Problemet oppstår derimot om brukeren har skrevet et relativt langt dokument uten å lagre manuelt i løpet av skriveperioden. Om brukeren feks. skulle miste nettilgangen, eller navigere seg til en annen side uten å lagre manuelt, forsvinner alt brukeren har skrevet.

 

Det jeg ønsker er et script som konstant kjører i bakgrunnen, og utfører et mysql_query som oppdaterer databasen med det brukeren har skrevet i feltene, uten at brukeren selv trenger å gjøre noe.

Lenke til kommentar

JavaScript kan ikke kjøre PHP-kode. PHP-kode utføres på serveren mens JavaScript utføres hos brukeren. JavaScript kan derfor selvsagt ikke kjøre mysql_query til en database på serveren.

 

Dette er måten du gjør det:

 

var contentElement;
function pushData()
{
if (!contentElement) {
contentElement = document.getElementById('content-element');
}
doAjax(contentElement.value);
setTimeout(pushData, 30000);
}
}
setTimeout(pushData, 30000);

doAjax-funksjonen sender et AJAX-POST med innholdet til serveren hvor PHP kan lagre innholdet i databasen.

Endret av JohndoeMAKT
Lenke til kommentar

Jeg gjør akkurat det som står her. Har et script som kjøres hvert 5 sekund og i php-scriptet mitt kobles den til en db med timestamp for siste lagring. Dersom det er over, eller akkuat 60 sekunder siden *save*

 

Mine scripts. Ignorer thomas(), det er det scriptet som kjøres hver gang siden lastes. http://pastebin.com/f406cc496, send PM dersom du trenger mer hjelp, sleit mye med å få til dette scriptet

Endret av TheClown
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...