Door
Jos Verstraeten
op 19-04-2014 10:17
gewijzigd op 19-04-2014 11:00
1.987 views
Hallo,
Ik ben op zoek naar een manier om de text op een button dynamic te maken.
Dynamic op een manier dat het afhangt van een script.
Ik heb een scriptje dat connectie maakt met de database en daar gaat opzoeken of het spel gepauzeerd is of niet. Afhankelijk van of het spel gepauzeerd is moet de knop de tekst "Pauze" of "Verder gaan" zijn.
Ik dacht dit te doen met php maar dan wil het niet updaten als je er zelf op klikt,
maar wel als je de pagina zelf herlaad. En anderzijds heb ik ook met java geprobeerd:
zoals hier uitgelegd: Hier dus. Maar dat werkt ook niet helemaal zoals ik wil, laat staan dat ik in de mogelijkheid ben daar een script aan te koppelen :P
Dat is JavaScript, geen JAVA. Of zoals engelse zeggen "Java is to JavaScript what Car is to Carpet" (vrij vertaald: JavaScript is Java, wanneer een auto een vloerkleed is).
PHP werkt via de server, dat betekend dat de pagina eerst moet worden opgevraagd en dus is er op zijn minst een refresh nodig. Je moet het dus met een client side taal afhandelen, en daar is er maar 1 van: JavaScript.
Shamrock geeft je al een mooi opzetje. Maar de iets verbeterde versie:
[code lang=js]
<button id="js-button-continue">Pauze</button>
<script>
var btnContinue = document.getElementById('js-button-continue');
en kan ik aan die function (e) dan ook een php script koppelen dat hij moet uitvoeren?
Zoiets als dit (ben momenteel offline aan het werken dus kan het niet onmiddelijk testen ...):
<button id="js-button-continue">Pauze</button>
<script>
var btnContinue = document.getElementById('js-button-continue');
btnContinue.onclick = function (e) {
if ('Pauze' === this.innerText) {
this.innerText = 'Verder Gaan';
<?php mysql_query("UPDATE game SET status='1' WHERE id='$id'");?>
} else {
this.innerText = 'Pauze';
<?php mysql_query("UPDATE game SET status='0' WHERE id='$id'");?>
}
};
</script>
>> en kan ik aan die function (e) dan ook een php script koppelen dat hij moet uitvoeren?
Nee. Want zoals ik al zei werkt PHP op de server en JavaScript in de browser. Mocht je iets met PHP willen doen dan moet je dus weer een request maken naar de server, doormiddel van het laden van een pagina. Om dit zonder refresh te doen moet je kijken naar AJAX requests met JavaScript, maar ik raad je aan om eerst wat JavaScript kennis op te doen voordat je daarmee begint.
De code om iets in de database te voegen zul je in een apart php bestand moeten zetten.
Doormiddel van ajax kun je deze pagina aanroepen en de status en id meegeven in een variabele.
Na even zoeken heb ik gevonden hoe ik ook in de database de status wijzig maar als de status 3 wordt moet hij redirecten. Het probleem is dat als ik 3 meegeef via de functie hij soms wel en soms niet de status saved in de database. Is dit omdat hij te snel overgaat naar de redirect? Zoja hoe kan ik dan via mijn php een variabe meegeven zodat hij later redirect dus dan zou ik mijn code zo maken: