在PHP页面中使用AJAX加载部分页面

时间:2014-10-09 15:27:12

标签: php jquery ajax

我试图找出如何在我的php页面中使用AJAX将部分页面(div)加载到另一个div中。

基本上我有一个带有一些php输出内容的div,我需要使用ajax将div的内容放到另一个内容中,但是我的代码没有做任何事情(它没有把它放到div的内容是另一个。)

这是我目前的代码:

<script type="text/javascript">
$(document).ready(function () {

    function load() {
        $.ajax({
            type: "GET",
            url: "<?php echo $actual_link; ?>",
            dataType: "html",
            success: function(response) {
            //  $("#ajaxContent").html(response);
                $("#issomeone").html($(response).find("#notis"));

                setTimeout(load, 4000);
            }
        });
    }

    load();
});
</script>

所以#notis div保存php输出,而#issomeone div是我需要将这些东西放入使用ajax的div。

我的代码中是否缺少某些内容,或者我只是做错了?

任何帮助将不胜感激。

由于

编辑:

这没有做任何事情:

<script type="text/javascript">
$(document).ready(function () {


function load() {
    $.ajax({
        type: "GET",
        url: "<?php echo $actual_link; ?>",
        dataType: "html",
        success: function(response) {
        //  $("#ajaxContent").html(response);
        //$("#issomeone").html($(response).find("#notis"));


        $('#issomeone').load("<?php echo $actual_link; ?> #notis");

        setTimeout(load, 4000);
    }
});
    }

    load();
});
</script>

1 个答案:

答案 0 :(得分:0)

您正在find DOM元素,然后尝试将其设置为目标元素的innerHTML html()。你本质上有一个类型不匹配。

你需要将#notis的innnerHTML作为参数传递给这个函数,所以:

$("#issomeone").html($(response).find("#notis").html());

或者,如果要保留整个#notis元素,可以附加节点

$("#issomeone").append($(response).find("#notis"));

但实际上,既然你正在使用直接的GET,那么你可能会做得更好:

$('#issomeone').load('<?php echo $actual_link; ?> #notis'); 

这为您尝试使用.ajax()

手动执行的操作提供了更简单的抽象 但是,我会鼓励你不要习惯于加载完整的HTML页面然后为某些特定元素划伤它们。使用AJAX目标脚本只提供可能需要的内容是更好的设计架构。