使用JavaScript在单击时删除图像

时间:2011-06-16 03:08:34

标签: php javascript mysql

<?php     
 $imgcheck=mysql_query("

  SELECT *
FROM `images`
 WHERE `deal_id` =$_SESSION[eid]
LIMIT 0 , 30

 ");
 $numimgcheck=mysql_num_rows($imgcheck);
  if($numimgcheck==0){echo '<span style=color:#ff0000; >No pictures uploaded</span>';}
    while ($rowimg2= mysql_fetch_array($imgcheck)){ 


     $imgname=$rowimg2['name'];

     {
    //   $rowimg2 = mysql_fetch_array($imgcheck) or die(mysql_error());

     //echo $imgname;
     echo '    <a href="users/'.$_SESSION['userid'].'/images/'.$imgname.'"   rel="lightbox[slide]" caption=".">';
       }


       { echo '<img src="users/'.$_SESSION['userid'].'/images/thumbs/'.$imgname.'"   border="0" />';}
     { echo '</a><a href="delimg.php?id='.$imgname.'"><img src="images/del.jpg" width="22" height="22" onclick="deleteImg(this);" />   </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     ';

    }

  //<input type="checkbox" name="'.$imgname.'" id="'.$imgname.'" > if($numimgcheck==0){      $havepic=' <td width="50px" align="center"><div class="iddivimg"> <img src="users/default/nopic_small.jpg"  />

//';}

    }
    ?>

我的网站上有一个页面,用户可以在其中编辑和删除图像。在此页面中,每个图像附近都有一个删除按钮(本身为20x20图像)。当用户点击该按钮时,其相应的图像将被删除。我想要它是这样一种方式,当我点击删除图像时,会出现一个确认框,询问“你确定要删除这个图像吗?”如果我单击是,我想删除MySQL表的数据和图像。如果我点击否,则不会发生任何事情。我怎么能这样做?

6 个答案:

答案 0 :(得分:2)

将每个图像放在自己的表单中,图像标识符为隐藏值,并使用删除图像作为提交按钮的CSS背景图像。最后使用JS confirm()函数进行确认。

<form action="delete.php" method="post">
    <img src="image1.png" />
    <input type="hidden" name="id" value="1" />
    <input type="submit" class="delete" value="" onclick="return confirm('Sure?')" />
</form>
<form action="delete.php" method="post">
    <img src="image2.png" />
    <input type="hidden" name="id" value="2" />
    <input type="submit" class="delete" value="" onclick="return confirm('Sure?')" />
</form>
...

使用CSS

.delete {
    background-image: url('delete.png');
    width: 20px;
    height: 20px;
    border: 0;
    cursor: pointer;
}

这很容易在循环中完成。在必要时,你可以使用jQuery不引人注意地引入ajaxical权力。

答案 1 :(得分:1)

没有一些示例代码很难提供帮助。假设您有一个函数deleteImg()和一个图像<img src="delete.jpg" onclick="deleteImg(this);" />

然后你做:

function deleteImg(image)
{
  if(confirm("are you sure you want to delete this image"))
  {
      ... // delete image logic.
  }
}

http://www.javascripter.net/faq/confirm.htm

答案 2 :(得分:1)

正在使用哪种服务器端语言?假设PHP出于解释的目的。

粗略草图(AJAX方法):

  1. 创建可以调用以删除图像的服务器端页面(例如delete_image.php?image_id={id}
  2. 点击图片,使用confirm验证用户是否要继续。
  3. 如果确认为真,请在delete_image调用中创建一个AJAX帖子(请参阅jQuery library以获取执行此操作的简便方法。)
  4. 从页面中删除图像(或刷新)。
  5. 表格POST方式:

    1. 使用包含图片ID的隐藏输入变量将表单中的每个删除图片按钮包裹到delete_image.php中。
    2. Onclick(或onsubmit)使用javascript confirm,只会继续使用真实结果。
    3. delete_image.php中,从帖子表单中检索image_id
    4. 使用DELETE查询从MySQL数据库中删除相应的图像。
    5. 重定向回图像显示页面以刷新图像。

答案 3 :(得分:1)

看来你还没有尝试在网上寻找解决方案,因为我相信你会找到一些,如果不是很多。单击图像时,使用JS confirm()函数调用一个提示用户提问的javascript函数,如

if (confirm("Do you want to delete the image?")) {
    // call your PHP script that will then delete the image
}

答案 4 :(得分:1)

在您最近添加到问题中的代码中,我认为问题是<a href>始终执行,因为它独立于您对deleteImg()函数的调用而运行。

<a href="delimg.php?id='.$imgname.'">
    <img src="images/del.jpg" width="22" height="22" onclick="deleteImg(this);" />
</a>

我认为如果您将代码更改为此代码,则应该可以正常运行:

<a href="delimg.php?id='.$imgname.'" onclick="deleteImg(this);">
    <img src="images/del.jpg" width="22" height="22"  />
</a>

在deleteImg()函数中,在confirm()的IF部分添加return TRUE;,并在ELSE部分添加return FALSE。像这样:

if (confirm("Do you want to delete the image?")) {
    // call your PHP script that will then delete the image
    return TRUE;
} else {
    return FALSE;
}

答案 5 :(得分:0)

没有单一的解决方案,所以我会提供一些对你有用的技术(我假设你在服务器上使用Java环境的标签)。

对于确认框,如果你的意思是像DHTML那样确认Facebook上常见的方框,你可能想要使用jQuery UI组件。看看这个: http://jqueryui.com/demos/dialog/#modal-confirmation

你也可以使用javascript确认功能,但这些盒子目前正在流行。

考虑更新数据库,当然必须从服务器端完成。您可以设置Servlet来执行删除操作,也可以设置Web服务。这只是传递正确参数的问题。