代码之家  ›  专栏  ›  技术社区  ›  Paddy Hallihan

AJAX调用后通过JS打印HTML

  •  0
  • Paddy Hallihan  · 技术社区  · 6 年前

    假设我有3个PHP页面。

    • Page1是用户正在查看的页面。
    • 第2页包含在第1页上,该列表列出了项目,每个项目旁边都有一个删除按钮。
    • Page3是我的解析文件,我通过AJAX将信息发送到该文件以更新我的DB

    我将所有数据发送到第三个PHP文件的JS如下:

    $(".delete").bind("click", function() {
        var id = event.target.id;
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function(){
            if(this.readyState == 4 && this.status == 200){
                console.log(this.responseText);
    
                //document.getElementById("message").innerHTML = 'deleted';
                //$("#message").html('deleted');
            }
        };
        xmlhttp.open("POST", "page3.php?delete="+id, true);
        xmlhttp.send();
    });
    

    这工作正常,我可以看到控制台中返回的内容,但我无法添加消息。消息div位于第2页。

    我能想到发生这种情况的唯一原因是page2被包含在page1中,尽管div存在于DOM中,并且我在控制台中没有得到一个JS错误,说找不到div。

    2 回复  |  直到 5 年前
        1
  •  0
  •   Paddy Hallihan    6 年前

    通过重新设计并将div放在第1页上,解决了这个问题。

        2
  •  -1
  •   Hassan Voyeau    6 年前

    您缺少已加载页的检查

    window.onload = function(){
        document.getElementById("message").innerHTML = 'deleted';
    }
    

    或者

    $( document ).ready(function() {
        $("#message").html('deleted');
    });