масcив из php в js

столкнулся с проблемой, не могу вывести массив из php в js, может вы сможете мне чем-нибудь помочь?

<?php
$server =$_SERVER['localhost'];
$username = '#';
$password = '#';
$dbname = '#';
$charset = 'utf8';

$connection = new mysqli($server, $username, $password, $dbname);

if($connection->connect_error){
    die("Ошибка соединения ".$connection->connect_error);
}

if(!$connection->set_charset($charset)){
    echo "Ошибка установки кодировки UTF8";
}
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Загрузка картинки в БД</title>
</head>

<body>

<div style="width:500px; height:500px;">
    <?php
        $query = $connection->query("SELECT * FROM images ORDER BY id DESC");
        while($row = $query->fetch_assoc()){
            $show_img = base64_encode($row['img']);
        
            $array[] = base64_encode($row['img']);;
            ?>
     
    <script type="text/javascript>
    var i =0
    while(i<3){
        var arr[i] = <?=$array[0]?>;
        i++;
    }
        
    </script>
    
    <div id="slider"><img src="" alt="Работа"></div>
    
    <script type="text/javascript>
        var slider = document.querySelector('#slider');
        var img = slider.querySelector('img');

        img.src = "data:image/jpeg;base64," + arr[1];
    </script>
</div>
</body>
</html>


Ответы (1 шт):

Автор решения: Андрей 9460

через ajax, самый годный вариант.

в index.php :

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Загрузка картинки в БД</title>
    <script
            src="https://code.jquery.com/jquery-3.6.1.min.js"
            crossorigin="anonymous"></script>

    <script>

        $.ajax({
            url: '/test_ajax.php',
            method: 'POST',
            dataType: 'json',
            data: {
                'event':'active'
            },
            success: function(data) {
                var imgArr = data;

                var slider = document.querySelector('#slider');
                var img = slider.querySelector('img');

                img.src = "data:image/jpeg;base64," + imgArr[1];
            }
        });

    </script>
</head>

<body>

<div style="width:500px; height:500px;">
    <div id="slider"><img src="" alt="Работа"></div>

</div>
</body>
</html>

в test_ajax.php

<?php
$arr = ['img', 'img1','img2'];

$event = $_POST['event'];
if ($event == 'active'){
    echo json_encode($arr);
} else {
    echo json_encode('the wrong event');
}

→ Ссылка