【问题标题】:My page still reload after delete with XMLHttpRequest使用 XMLHttpRequest 删除后我的页面仍然重新加载
【发布时间】:2015-05-07 07:31:34
【问题描述】:

我正在尝试从我的页面和数据库中删除图像而不重新加载页面。

html

   <div class ="thumbnail">
            <div class="gallery-box" id="Display">
                <!-- Thumbnail image -->
                <?php if (isset($image->thumbnailUrl)) echo '<img src="' . htmlspecialchars($image->thumbnailUrl, ENT_QUOTES, 'UTF-8').'">'; ?>
                <a href="#" onClick="deleteSingleImage('<?php echo htmlspecialchars($image->id, ENT_QUOTES, 'UTF-8'); ?>')" class="caption simple-caption delete-single-image">
                <span class="glyphicon glyphicon-trash"> Delete</span>
                </a>
            </div>
        </div>

javascript

function deleteSingleImage(id)
{
  var xmlhttp;
  if (id=="")
    {
        document.getElementById("Display").innerHTML="";
        return;
    }
  if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
  else
  {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
          window.location.reload()

        }
  }
      xmlhttp.open("GET", url + "/album/deleteimage/"+id,true);
      xmlhttp.send();

}

php

public function deleteImage($image_id)
{
  $sql = "...."
  //code to delete the image from database
}

我的图片已从我的数据库中删除。

图像从页面上消失。

删除链接获取正确的ID。

但是当我进行删除时页面会重新加载。怎么了?如何在不重新加载页面的情况下删除?

【问题讨论】:

  • 评论这一行 window.location.reload()
  • window.location.reload() 这是重新加载您的页面

标签: javascript php ajax xmlhttprequest


【解决方案1】:

ajax 响应后您正在重新加载页面。

试试这个:

    function deleteSingleImage(id)
{
  var xmlhttp;
  if (id=="")
    {
        document.getElementById("Display").innerHTML="";
        return;
    }
  if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
  else
  {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
          //Remove the image element from DOM

        }
  }
      xmlhttp.open("GET", url + "/album/deleteimage/"+id,true);
      xmlhttp.send();

}

【讨论】:

  • 这根本不起作用。我的图片没有从页面中删除。
  • 您需要在 ajax 成功回调之后为此编写代码...从 DOM 中删除图像元素..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多