如何在不刷新整个页面的情况下更新HTML文档中的PHP变量?

4

我有一个网页,它会输出我在MYSQL数据库中上传的文件(pdf)列表。当我上传新文件时,我希望自动更新此列表以包括我上传的新文件,而无需刷新整个网页。

这是显示更新列表的HTML代码,通过变量$mypdf_list:

 <div id="listwrapper_hook">
    <div id="dynamic_listwrapper"><hr>
        <!--DYNAMIC PDF LIST CONTENT GOES HERE-->
        <?php echo $mypdf_list; ?>
    </div>
</div>

我尝试使用JavaScript替换'dynamic_listwrapper' div,然后用新的div更新显示的'mypdf_list'变量,但这并没有起作用。

我的JavaScript代码:

 //UPDATE 'Recently Uploaded Files'
    var wrapper_hook = document.getElementById('listwrapper_hook');
    var list_wrap = document.getElementById('dynamic_listwrapper');

    wrapper_hook.removeChild(list_wrap);

    //Add child again to update the '$mypdf_list' 
    wrapper_hook.appendChild(list_wrap);

2
自动更新:ajax - Masiorama
2
你可以使用Ajax来实现这个。 - PHP Worm...
http://stackoverflow.com/questions/27068228/ajax-call-to-delete-and-refresh-list-not-working - Jose Manuel Abarca Rodríguez
2个回答

3

感谢大家的建议。使用Ajax调用是方法。以下是我的JavaScript解决方案(可行):

 // GET REFRESHED '$mypdf_list'
    // AJAX CALL
    var formdata = new FormData();
    formdata.append("update",'refresh');

    // create XMLHttpREquest object
    var xmlhttp = new XMLHttpRequest;

    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            // HANDLE RESPONSE HERE
            document.getElementById('dynamic_listwrapper').innerHTML = xmlhttp.responseText;
        }
    }

    xmlhttp.open("POST", "getMypdf_list.php");
    xmlhttp.send(formdata);

}

1

使用ajax来实现。

代码将略微类似于这样:

setInterval(function () {
    var url_to_fetch_pdfs = "www.yourdomain.com/fetch_pdfs.php";
    $.ajax({
        type: "POST",
        url: url_to_fetch_pdfs,
        cache: false,
        success: function(result){
            $("#dynamic_listwrapper").html("<hr>"+result);
        }
    });
}, 60000); // 1 Minute

在你的PHP文件中,你将获取所有PDF下载,ajax变量中的result将是你的PHP获取文件中的echo

Ajax文档


OP标记了javascript,但没有标记jquery,所以虽然这可能有效,但并不一定有帮助。 - Reed
1
OPеЏҮиѓҢдёҚзџӨйЃ“jqueryпәЊж‰Ђд»Өд»–еЏҮд»Ө将其概括дёғjavascriptгЂ‚з”±дғҺд»–жІҰжњ‰жЏђе€°д»…дҢүз”ЁjavascriptгЂ‚ - alexandreferris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接