Передача значения поля БД в backgroundImage div'a в js функции

106
16 января 2021, 00:10

У меня имеется большое поле (div), в котором находятся 12 div меньшего размера. При нажатии на кнопку, вызывается функция js, которая чистит большое поле от маленьких div'ов. Далее мне необходимо создать снова 12 div в этом большом поле с другими значениями, которые я получаю из БД. Изначально у меня имелось 12 div'ов с следующими id=[1,2,3,4,5,.....,12], им соответствуют какие-либо ссылки на картинки из БД. Теперь мне необходимо получить div'ы с id=[13,14,15,16,...,24], которым соответствуют уже другие ссылки на картинки. Сами div мне создать удалось, но вот присвоить им ссылки на изображения из БД никак не выходит. Если я задаю ссылку на картинку напрямую, то все работает. Однако мне необходимо получить их непосредственно из бд. currentPage - это текущая страница с блоками. На первой странице - показывает первые 12 блоков, на второй следующие 12 и т.д. id_animal - это ключ, его номер соответствует номеру блока, img_link - ссылка на картинку, которая мне так необходима. Помогите разобраться. Сейчас у меня имеется файл с запросом .php :

<?php
$result1 = mysqli_query($conn, "select id_animal, img_link from animal_table;") or die("Ошибка " . mysqli_error($conn));
    $to_encode = array  ();  
if($result1)
{
    while($row = $result1->fetch_array(MYSQLI_ASSOC)) {
            $to_encode[] = $row;
    }
    echo json_encode($to_encode);
}
$result1->close();
$mysqli->close();
?>

Также в наличии сама функция .js :

function NumPage(number){
$currentPage=number.id.replace(/[^-0-9]/gim,'');
alert($currentPage );
function getNewAnimalBlocks() 
{   
    var $main = document.getElementById('animalMainField');
    $main.innerHTML = '';
    i=($currentPage*12-11);
    while (i<($currentPage*12+1)) 
        {
            var div=document.createElement('block'+i);
            div.id = "block"+i;
            div.className = "animalBlock";
            //div.style.backgroundImage="url(./img/picture/7.png)"
            $.getJSON('./pages/database/getImg.php', function(data) 
            {
                $.each(data, function(id_animal, img_link) 
                {
                    console.log(id_animal + ':' + img_link);
                    if (id_animal==i)
                    {
                        div.style.backgroundImage=img_link;
                        $("#block" + id_animal).style.backgroundImage("url("+img_link+")");
                    }
                });
            });
            console.log(div);
            animalMainField.appendChild(div);
            console.log(div);
            i+=1;
        }
} 
getNewAnimalBlocks();
}
READ ALSO
Как выбрать нужное поле из базы данных?

Как выбрать нужное поле из базы данных?

Логика такая: Пользователь проходит тест на стороне клиента, в результате прохождения которого зарабатывает "score"В конце, с помощью AJAX запроса...

101
Не работает форма обратной связи на beget

Не работает форма обратной связи на beget

Не работает форма обратной связи (не приходят сообщения на почту), хотя сообщения на локальном сервере отправляетКод в форме html:

92
Можно ли как-то стандартными средствами java 1.8 создать на основе старой коллекции новую коллекцию, но с другим типом элементов не через цикл?

Можно ли как-то стандартными средствами java 1.8 создать на основе старой коллекции новую коллекцию, но с другим типом элементов не через цикл?

Можно ли стандартными средствами java 18 создать на основе старой коллекции новую коллекцию элементов, но с другим типом элементов не через...

138
Java код выполняется не последовательно

Java код выполняется не последовательно

Такая проблема: вызываются две функции (одна идет за другой), но первой выполняется вторая, что делает программу не юзабельной

101