@Finx

Как правильно подгрузить страницу в div при помощи AJAX?

Доброго времени суток. Пытаюсь сделать на странице подгрузку страницы в блок по нажатии клавиши, но не могу понять почему не работает, буду очень благодарен если подскажете в чем дело.

function showAlbums(link) {  
  
        var cont = document.getElementById('contentBody');  
        var loading = document.getElementById('loading');  
  
        cont.innerHTML = loading.innerHTML;  
  
        var http = createRequestObject();  
        if( http )   
        {  
            http.open('get', link);  
            http.onreadystatechange = function ()   
            {  
                if(http.readyState == 4)   
                {  
                    cont.innerHTML = http.responseText;  
                }  
            }  
            http.send(null);      
        }  
        else   
        {  
            document.location = link;  
        }  
    }  

    function createRequestObject()   
    {  
        try { return new XMLHttpRequest() }  
        catch(e)   
        {  
            try { return new ActiveXObject('Msxml2.XMLHTTP') }  
            catch(e)   
            {  
                try { return new ActiveXObject('Microsoft.XMLHTTP') }  
                catch(e) { return null; }  
            }  
        }  
    }


На странице вывожу таким образом:
<?php
    echo ("<form> <input onclick=\"showAlbums('/albums.php?group=".$title."')\" type=\"button\" value=\"Смотреть\"></form>");
    echo("<center><div id=\"contentBody\"></div><div id=\"loading\" style=\"display: none\"><img src='/load.gif'></div></center>");
?>


Заранее благодарен за помощь!
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
тут, конечно, ванильный js, но, например, в Jquery есть .load(), который делает что нужно. Можно в исходниках глянуть, что не так. Ну, или есть https://learn.javascript.ru/fetch и response.text(), который можно вставить как innerHTML в нужный элемент DOM
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы