借助复选框删除所选图像

时间:2011-06-15 14:19:38

标签: php

这是一个用户可以编辑上传图片的页面。每张图片旁边都有一个复选框。我想在用户单击“删除所选图像”按钮后删除所选图像(每个复选框包含图像名称作为值)。我怎么能这样做?

<?php 
    session_start();
    //////////////if user already logged in go to login.php/////////
    if (isset($_SESSION['email'] )&& isset($_SESSION['password'] ))
    { 
    } else{header( "Location: login.php" ); }

      include('includes/config.php');


      if (isset($_POST['esubmit'])     ){

       $checkbox=$_POST['delete'];
       echo $checkbox;

       }//main one



     if (isset($_POST['esubmit'])     ){

     } else {        $clickeditid=$_GET["id"];  
         $_SESSION['eid']= $clickeditid ;
        }




 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="css/css.css" rel="stylesheet" type="text/css" />
 <style rel="stylesheet" type="text/css">
input {
  border-style: solid;
  border-color: #000000;
  border-width: 1px;
  background-color: #ffffff;
}
</style>

<script src="js/css_browser_selector.js" type="text/javascript"></script>
</head>

<body>
<?php   


include('includes/topmenu.php');//top menu
  echo '<br />';  
  include('includes/usermenu.php');///bcoz of this menu error occurs



 ////////////////////


   include('includes/edit_img_menu.php');  
 ?>
  <form id="form1" name="form1" method="post" action="editimg.php?id=<?php echo $_SESSION['eid'];?>">
  <table align="center" width="70%" cellspacing="0">
  <tr>
    <td colspan="3" align="center" bgcolor="#FFFFFF"></td>
    </tr>
  <tr>
    <td colspan="3" align="center" bgcolor="#FFFFFF"><?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'];

 {



     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><input type="checkbox" name="delete" id="delete" value="'.$imgname.'"> &nbsp;&nbsp;&nbsp;&nbsp;
';}




}
   ?></td>
    </tr>
  <tr>
    <td colspan="3" align="center" bgcolor="#FFFFFF">&nbsp;</td>
    </tr>
  <tr>
    <td colspan="3" align="center" bgcolor="#95F8FD"><input name="esubmit" type="submit" class="red" id="esubmit" value="Delete selected images" /></td>
    </tr>
  <tr>
    <td width="89">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    </tr>
</table>
   </form>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

您必须创建一个表单来提交已检查复选框的数据并使用php代码处理提交的结果:如果您想将php代码放在同一页面上,您可以检查如果POST变量中有任何数据并创建SQL查询以删除相应的图片。

您可以在此处找到一份记录完备的教程:http://sharemyphp.wordpress.com/2009/12/21/ajax-jquery-php-multiple-delete-item-with-check-box/

此致

最高

答案 1 :(得分:0)

我使用以下代码删除管理面板中的图片。我将文件保存为deletephoto.php。请注意,此脚本无需登录即可运行。您需要进行一些更改以适合您的用例

<form method="post" action="deletepho.php">
<center>
<input type="submit" value="Delete" name="Delete">
</center>
<?php
\\lets assign the folder name in $title
\\You can assign any name
$title= "test";
\*$directory corresponds to whole path. Edit to your preference. (i assume u store your 
images in directory named "images") */    
$directory = "$title/images";
\\The array specifies the format of the files
$allowed_types=array('jpg','jpeg','gif','png');
$file_parts=array();
$ext='';
$title='';
$i=0;

$dir_handle = @opendir($directory) or die("There is an error with your image directory!");

while ($file = readdir($dir_handle)) 
{
    if($file=='.' || $file == '..') continue;

    $file_parts = explode('.',$file);
    $ext = strtolower(array_pop($file_parts));

    $title = implode('.',$file_parts);
    $title = htmlspecialchars($title);

    $nomargin='';

    if(in_array($ext,$allowed_types))
    {
        if(($i+1)%4==0)
        $nomargin='nomargin';
        echo'
        <div id="picture">
        <img src="'.$directory.'/'.$file.'" width="150" height="150"><br>
        Select <input type="checkbox" value="'.$directory.'/'.$file.'" name="imgfile[]">

\* I specified input name as an array . So that we can store in an array and delete it.*/
            </div>';
            }
            $i++;
        }

    closedir($dir_handle);
    \\Now we have the list of images within form elements
    ?>
    </form>

现在这里是删除照片的实际代码。我将其保存为deletepho.php

$file = $_REQUEST['imgfile'];
$num_files=count($file);
for($i=0;$i<$num_files;$i++)
{
unlink ("$file[$i]");
}
echo "Images successfully deleted.Go <a href='deletephoto.php'>back</a>";