【问题标题】:load partial page using AJAX in PHP page在 PHP 页面中使用 AJAX 加载部分页面
【发布时间】:2014-12-04 14:41:12
【问题描述】:

我试图弄清楚如何在我的 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>

【问题讨论】:

  • @PedroEstrada,您能详细说明一下吗?您发送的链接也已损坏。
  • 你检查 $actual_link 是否有输出吗?尝试使用 jQuery 的 load() 函数..
  • @user3806613 链接指向 jQuery .load() 文档。如果不起作用,请在 google 中搜索jquery .load()
  • @user3806613 使用它的方式是function load() { $("#issomeone").load("&lt;?php echo $actual_link; ?&gt;") } 然后调用load() 或在您需要时调用。

标签: php jquery ajax


【解决方案1】:

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

您需要获取#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 目标脚本尽可能只提供需要的内容是更好的设计架构。

【讨论】:

  • 第二个问题将重复添加具有相同 ID 的元素。没有指出答案的错误,但更多的是让 OP 识别
  • @charlietfl 好点。如果打算多次调用 load() 包装函数,则 append() 解决方案不会很好。
最近更新 更多