Ag Grid Node naar string

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zwolly Wood

Zwolly Wood

14/10/2019 15:33:30
Quote Anchor link
Hallo Lezers,

Wie kan/wil mij helpen?

Ik ben aan het oefenen met Javascript en kom ergens niet uit

Ik gebruik AG grid om met een tabel te werken.

Mijn javascript code;

function onBtForEachNode() {

console.log('### api.forEachNode() ###');
gridOptions.api.forEachNode(this.printNode);

}

&

function printNode(node, index) {
if (node.group) {
console.log(index + ' -> group: ' + node.key);
} else {
console.log(index + ' -> data: ' + node.data.athlete + ', ' + node.data.age + node.data.country + ', ' + node.data.year + ', ' + node.data.date + ', ' + node.data.sport + ', ' + node.data.gold + ', ' + node.data.silver);
}
}

Nu krijg ik in de console een uitslag zoals;
1 -> data: Michael Phelps, 19United States, 2004, 29/08/2004, Swimming, 6, 0

Nu wil ik dit graag doorzetten naar een array om later door te zetten naar een database.

Heeft iemand een idee hoe ik dit het best op kan pakken?

Alvast bedankt mocht iemand reageren.

Groet, Zwolly Wood
 
PHP hulp

PHP hulp

08/11/2024 16:11:08
 
- Ariën  -
Beheerder

- Ariën -

14/10/2019 15:47:01
Quote Anchor link
Is verpakken in JSON geen beter idee?
 
Thomas van den Heuvel

Thomas van den Heuvel

14/10/2019 15:56:04
Quote Anchor link
Zwolly Wood op 14/10/2019 15:33:30:
Nu wil ik dit graag doorzetten naar een array om later door te zetten naar een database

Kun je dat niet rechtstreeks(er) doen? Alles/het meeste zit immers al in node.data?
 
Rob Doemaarwat

Rob Doemaarwat

14/10/2019 17:54:59
Quote Anchor link
Kijk eens naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
console.log(JSON.stringify(node.data))

Je hebt dan je hele data array (aan de javascript kant) in een (JSON) string. Deze string kun je naar de server doorzetten, en daar kun je dan weer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
print_r(json_decode($_POST['data']));

Alternatief is dat je de hele data als losse velden aan de GET (evt. POST) meegeeft, zie bijvoorbeeld hier.
 
Zwolly Wood

Zwolly Wood

14/10/2019 19:25:45
Quote Anchor link
Alvast bedankt voor de reacties. Éen node omzetten voor invoer naar PHP is mij gelukt. Echter weet ik niet hoe ik meerdere nodes kan bundelen in één string.

Hoe kan ik bijv. de uitkomst van de eerste 'foreach' opslaan in een variabele en weer 'hergebruiken' in de volgende foreach? Doel hiervan is om uiteindelijk alle nodes achter elkaar in een string te krijgen en dan om te zetten naar JSON.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/10/2019 20:16:46
Quote Anchor link
>> Hoe kan ik bijv. de uitkomst van de eerste 'foreach' opslaan in een variabele en weer 'hergebruiken' in de volgende foreach?
Een foreach genereert zelf geen uitkomst. een foreach gaat enkel alle elementen in een array doorlopen.


>> Doel hiervan is om uiteindelijk alle nodes achter elkaar in een string te krijgen en dan om te zetten naar JSON.
Je denkt nog een beetje te ingewikkeld. Je hoeft de array (nodes) niet in een string te zetten. Je knalt in één keer de hele array (alle nodes) in JSON.

Misschien helpt een werkend voorbeeld:
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
24
25
26
27
28
29
30
<?php

$players
= [
    [

        'name' => 'Diego Lainez',
        'age' => 17,
        'country' => 'Mexico',
    ],
    [

        'name' => 'Mikel Oyarzabal',
        'age' => 20,
        'country' => 'Spanje',
    ],
    [

        'name' => 'Malcom',
        'age' => 20,
        'country' => 'Brazilië',
    ],
];


$json = json_encode($players);
echo $json . "<br>\n<br>\n";

// nu terug:

$spelers = json_decode($json, true);
foreach($spelers as $speler) {
    echo 'name: ' . $speler['name'] . ', age: ' . $speler['age'] . ', country: ' . $speler['country'] . "<br>\n";
}

?>


In javascript kun je een json-string weer omzetten in een object.
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
<!DOCTYPE html>
<html>
    <body>

        <p id="demo"></p>

        <script>
            var txt = '[{"name":"Diego Lainez","age":17,"country":"Mexico"},{"name":"Mikel Oyarzabal","age":20,"country":"Spanje"},{"name":"Malcom","age":20,"country":"Brazili\u00eb"}]';
            var obj = JSON.parse(txt);

            for(var i = 0 ; i < obj.length ; i++) {
                document.getElementById("demo").innerHTML += obj[i].name + ' - ' + obj[i].age + ' - ' + obj[i].country + '<br>';
            }
        </script>

    </body>
</html>
Gewijzigd op 14/10/2019 20:26:52 door Frank Nietbelangrijk
 
Rob Doemaarwat

Rob Doemaarwat

14/10/2019 22:14:12
Quote Anchor link
Zwolly Wood op 14/10/2019 19:25:45:
Echter weet ik niet hoe ik meerdere nodes kan bundelen in één string.

Door ze te "verzamelen" in een array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
var nodes = [];
//een node toevoegen
nodes.push(node);
//nog een node toevoegen
nodes.push(node);
//enz
console.log(JSON.stringify(nodes));
 
Zwolly Wood

Zwolly Wood

18/10/2019 16:45:48
Quote Anchor link
Bedankt voor de hulp allemaal
 



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.