Gå til innhold

Oppdatere en tabell med sql-data uten å refreshe siden?


Anbefalte innlegg

Skrevet

Hei!

 

Har prøvd å google etter dette, men vet liksom ikke helt hva jeg skal søke etter...

 

Jeg har laget en HTML-side med en tabell som fylles av data fra en SQL spørring.

 

Jeg ønsker at det gjøres en spørring hvert 2 sekund, og at tabellen skal oppdatere seg dersom det har skjedd noen endringer.

 

Dette er kun til internt bruk (maks 2-3 viewers av gangen), så jeg er ikke redd for at serveren skal knele pga mange spørringer.

 

Hvordan løser jeg dette?

Videoannonse
Annonse
Skrevet

Du lager funksjonen/siden som skal kjøre spørringen/utføre endringene, og bruker ajax til å inkludere og oppdatere denne uten at hele siden oppdateres. Det enkleste er å bruke PHP eller et lignende språk til å kjøre selve spørringen.

Skrevet (endret)

Om støtten for frames og iframes er helt fjernet i HTML5 er jeg usikker på, men jeg ser ingen grunn til at de skal brukes, selv ikke til det trådstarter ønsker å oppnå.

 

Redigert: iframe-elementet er ikke fjernet, men har derimot fått flere funksjoner. Det kan derfor diskuteres om det faktisk er brukbart eller om man bør holde seg unna. Jeg for min del foretrekker javascript og ren HTML.

Endret av Runar
Skrevet

Jeg husket litt feil.

The following elements are not in HTML5 because their usage affected usability and accessibility for the end user in a negative way:

 

* frame

* frameset

* noframes

Iframes er tydeligvis fortsatt med, men det er uansett ikke mer laget for en liten rute <aside>, en minigjestebok, reklame eller noe.

Skrevet

Dette bør du bruke AJAX til ja, jeg bruker selv jQuery som er et javascript framework. Det kan anbefales. Bare for å gi et lite eksempel på hvordan det fungerer:

 


function getMessages()
{
	$.post("http://url-til-din-side.com/dittscript.php",{ 'timestamp' : timestamp },
	function(data) {
	if(data.result == 'success')
	{ 
	$('#msg').html(data.html);
	timestamp = data.timestamp;
	}
	else
	{
	alert('sorry it failed'+data.result);
	}
}, "json");
}
// Oppdater hvert sekund
setInterval('getMessages()',1000);

 

På serveren må du da ha dittscript.php noe slik:

// sql queries osv her gir oss $html som inneholder dataene
// Lager en json array slik at jquery kan benytte dataene å fylle tabell
	echo json_encode(array(
	'result'=>'success',
	'html'=>$html,
	'timestamp'=>$this->message_model->get_latest_unix_time()));

  • 2 uker senere...

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...