Hallo!
Hoe kan ik checken of er een update in de database is ZONDER de pagina te reloaden? Als er wel iets geupdate is, of iets nieuws erbij moet er een modal box komen met daarin informatie. Hoe moet dit?

Mvg,
Rob

[size=xsmall]Toevoeging op 10/01/2017 19:38:04:[/size]

En hoe kan ik om de zoveel seconden het volgende script uitvoeren:


if (loggedIn() == true) {
  header ('Location: /loggedIn');
}
Als je iets a-synchroon wilt laden, dan kan je prima JavaScript met de AJAX-technologie gebruiken.
Op die manier refresh ik bijvoorbeeld a-synchroon de vertrektijden van de treinen op mijn site. De JavaScript-code (gebruikt jQuery) mag je wel gebruiken.
Heeft u hier toevallig een voorbeeld van? In code
Niet zo heel moeilijk het het jQuery-framework, die je op CodeAcademy of W3Schools kan leren. Het script schrijft de uitvoer van script.php elke 30 seconden door naar een HTML element met een id="result", en als dat fout gaat dan laat het daar een foutmelding zien.

$(document).ready(function(){
loadData(); // start de functie.

function loadData() {
	$.ajax({
		url: "script.php",
		cache: false,
		success: function(html){
			$("#result").empty().html(html);
			setTimeout(function () { 
			loadData(); 
			}, 30000); // 30 seconden
			},
			error:function (xhr, ajaxOptions, thrownError){
					$(".result").empty().html('Er is een fout opgetreden:'+ xhr.status + ' '+ thrownError);
			      }    
		});
	}
});

LET OP: Vergeet niet de jQuery-library zelf in te voegen in je site.
Kan ik hiermee ook

if (loggedIn() == true) {
  header ('Location: /loggedIn');
}
om de x tijd uitvoeren?
Kan, maar lijkt mij onnodig. Ik denk dat je met de kennis van jQuery genoeg in handen hebt.
Ik heb iets met php gemaakt;

function d() {
	echo 'd';
}
while (true) {
    d(); // Call your function
    sleep(10);
}

Maar hier laad die de heletijd, en pas na ongeveer 30 seconden runt die de echo..

[size=xsmall]Toevoeging op 10/01/2017 20:40:16:[/size]

Heeft één van jullie misschien een werkend script?
Leuk, maar je hebt daar weinig aan voor jouw praktijk. Ik heb het idee dat je teveel doelstellingen neerzet van theorie waar je nog geen kaas van hebt gegeten.

Mijn advies: Focus je maar op één ding, en zeker niet op meerdere dingen. Dan gaat het over PHP, dan JavaScript en dan opeens weer CSS. Op die manier kan je geen goede grip en structuur krijgen. Als ik een goede tip mag geven: Ik zie dat je bezig bent met een Habbo/bank-systeem. Laat dit project even rusten en zet het in de ijskast. De doelstellingen die je bedenkt zijn hoger dan de lat die je nu hebt liggen.

Richt je eerst op één theorie zoals PHP, en ga daarmee aan de slag aan de hand van CodeAcademy. En probeer te begrijpen wat de code doet, speel er mee, en bouw het uit aan de hand van nieuwe geleerde theorie. Op die manier creeer je kleine projectjes waarbij je steeds meer ervaring krijgt. Als je PHP voldoende beheerst dan kan je naar JavaScript kijken en dan bijv. naar je jQuery framework.

Dus begin niet te hoog op de ladder, maar begin onderaan.
Als je er elke dag effectief mee bezig bent, dan zal je zelf meer ervaring en zelfvertrouwen opdoen en over een paar maanden een redelijk CMS-systeem of forum kunnen bouwen. Neem dus de de tijd, oefen veel en verwacht niet dat je alles in een week geleerd hebt.
Ik ben er al mee gestopt :) Dit wil ik juist graag uitproberen :) And i know, ik leg de lat wat te hoog..

[size=xsmall]Toevoeging op 10/01/2017 20:49:41:[/size]


Ik zie dat je bezig bent met een Habbo/bank-systeem.

Iemand anders maakt het al die er meer verstand van heeft :)
Als aanvulling, wat wel handig is om te weten is dat PHP een serverside taal is. Dat betekend dat op het moment dat jij de webpagina voor je hebt, er niets aan de pagina kan veranderen door middel van PHP zonder de pagina te reloaden. Alle veranderingen vinden plaats op de server, vóórdat de html getoond wordt aan de gebruiker.

Alle PHP scripts die je hier dus voor bedenkt werken bij voorbaat al niet, omdat die altijd een reload nodig zullen hebben. Je post een paar keer dit stukje code:


if (loggedIn() == true) {
  header ('Location: /loggedIn');
} 


Dat kan je gebruiken als je er een javascript aan koppelt dat het uitvoert om de zoveel seconden. Maar dan zal er nog steeds altijd een reload plaats vinden om de zoveel seconden.

Dus mocht je weer eens wat zoeken waarmee je iets kunt doen ZONDER een pagina te reloaden dan kun je dat eigenlijk nooit met PHP oplossen maar zul je altijd met javascript aan de gang moeten.

Reageren