使用XMLHttpRequest删除后,我的页面仍然重新加载

时间:2015-05-07 07:31:35

标签: javascript php ajax xmlhttprequest

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

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。

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

1 个答案:

答案 0 :(得分:0)

您在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();

}