I explored a bunch of related questions but to no avail.
I use json_encode to pass on a PHP variable to JS and it works fine.
<?php echo json_encode($datasets[0]);?>);
But when I try to do the same thing inside a JS for loop using the index of the loop it only picks up null.
How can I use the the index of the PHP array $datasets[] inside a JS for loop?
const DT = [];
for (let i = 0; i < 10; i++) {
DT.push(<?php echo json_encode($datasets[i]);?>);
};
>Solution :
PHP executes before any of the JavaScript executes, so it cannot evaluate $datasets[i], because that i is not known in PHP. Moreover, it would only evaluate it once, because there is no PHP loop.
The way to do this, is to let PHP pass the whole data set to JavaScript:
const DT = <?php echo json_encode(array_slice($datasets, 0, 10));?>;
If the PHP array is also 10 items long, then you can omit the array_slice part. But if your intention was to just get the first 10 items of a longer PHP array, you’ll need it.