vraagje over het opslaan in een json file

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robin stek

Robin stek

06/11/2019 12:17:52
Quote Anchor link
Hallo allemaal,

Ik heb een vraagje ik heb een bestand gemaakt waarbij ik knoppen aan kan klikken maar telkens als ik de pagina refresh dan staan de knoppen telkens op de zelfde plek zoals ik heb aangegeven. Nu wil ik het omdraaien ik wil de knoppen die ik de laaste keer heb aangeklikt wil ik in het json bestandje hebben (dat hij opslaat welke er als laaste zijn gebruikt)

ik weet dat je een $post methode moet gebruiken maar kwam er niet uit misschien dat iemand me kan helpen hiermee.

mijn code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script>

    // Load initial values from JSON 'file'
    function setLaneStates(jsoninput) {
        setLaneState("lane1",jsoninput[0]['lane 1']);
        setLaneState("lane2",jsoninput[0]['lane 2']);
        setLaneState("lane3",jsoninput[0]['lane 3']);
        setLaneState("lane4",jsoninput[0]['lane 4']);
    }
    //jsonfile = '[{"lane 1":"1","lane 2":"1","lane 3":"5","lane 4":"2"}]';
    var jsonRequest = new XMLHttpRequest();
    jsonRequest.onreadystatechange = function () {
        if (jsonRequest.readyState == 4 && jsonRequest.status == 200) {
            var initialstate = JSON.parse(jsonRequest.responseText);
            setLaneStates(initialstate);
            console.log('Done loading JSON data');
        } else {
            console.log('Failed to get JSON data');
        }
    }
    jsonRequest.open( "GET", "data.json", true);
    jsonRequest.send( null );
</script>

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 06/11/2019 17:08:53 door - Ariën -
 
PHP hulp

PHP hulp

29/03/2024 02:16:24
 
Thomas van den Heuvel

Thomas van den Heuvel

06/11/2019 17:02:47
Quote Anchor link
Maar als je de pagina ververst kan een serverside taal hiermee aan de slag. Dus je zou zowel het lezen (bij initialisatie/refresh) als schrijven (bij het updaten) van de JSON-file hier aan over kunnen laten. Tenzij je enkel de beschikking hebt over JavaScript, en geen serverside taal (zoals bijvoorbeeld PHP)?
 
Robin stek

Robin stek

06/11/2019 17:11:56
Quote Anchor link
Thomas van den Heuvel op 06/11/2019 17:02:47:
Maar als je de pagina ververst kan een serverside taal hiermee aan de slag. Dus je zou zowel het lezen (bij initialisatie/refresh) als schrijven (bij het updaten) van de JSON-file hier aan over kunnen laten. Tenzij je enkel de beschikking hebt over JavaScript, en geen serverside taal (zoals bijvoorbeeld PHP)?


ja dat klopt, Alleen ik weet niet zo goed hoe ik het voor elkaar krijg heb hem natuurlijk nu zo ingesteld dat bij het opnieuw laden van de pagina meteen de knoppen weer op knop
1/ 1/ 5/ 4 springen.
 
Thomas van den Heuvel

Thomas van den Heuvel

06/11/2019 17:34:11
Quote Anchor link
Via de volgende simpele interacties met PHP kun je de "toestand" altijd up-to-date houden:
Bij laden pagina: lees json file met PHP en initialiseer de lanes.
Bij wijzigen: stuur een AJAX-call naar een PHP-script die de nieuwe lane state opslaat in de json file.

Overigens is dit ook een goede oefening om na te denken over hoe je je data structureert. Hierbij loont het de moeite om deze zo kort mogelijk te houden waarbij je alle overbodige informatie achterwege laat.

Dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
[{"lane 1":"1","lane 2":"1","lane 3":"5","lane 4":"2"}]

Is niet zo'n sterke manier. Je maakt hier gebruik van (letterlijke) tekstuele labels voor het identificeren van de lanes. Maar de posities van de states zouden in principe al afdoende kunnen zijn voor het identificeren van de lanes. De eerste positie (index 0) correspondeert met de eerste lane, de tweede (index 1) met de tweede lane, et cetera. Je kunt dit dus verkorten tot:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
[1,1,5,2]
Gewijzigd op 06/11/2019 17:34:25 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.