- N +

PHP实现批量删除(封装)

前台

<!DOCTYPE html>
<html>
<head>
  <title>批量删除</title>
</head>
<body>
<script type="text/javascript">

//复选框
function checkall(all)
{
  var ck = document.getElementsByClassName("ck");

  if(all.checked)
  {
   for(var i=0;i<ck.length;i++)
   {
     ck[i].setAttribute("checked","checked");
   }
  }
  else
  {
   for(var i=0;i<ck.length;i++)
   {
     ck[i].removeAttribute("checked");
   }
  }
}
</script>

<form action="test.php" method="post">
<table border="1">
  <tr><th><input type="checkbox" name="all" onclick="checkall(this)"/>id</th><th>名字</th></tr>

< 此处调用显示列表函数 -->
<?php show() ?>

<tr><td colspan="3"><input type="submit" value="批量删除"></td></tr>
</table>
</form>
</body>

<?php 

//显示列表
function show()
{
  //连接数据库
  @mysql_connect('localhost','root','');
  mysql_select_db('test');
  mysql_query('set names utf8');

  $sql = "select id,name from test";
  $res = mysql_query($sql);

  //循环取出数据
   while($row = mysql_fetch_row($res))
    {
     echo "<tr>
      <td>
       <input type='checkbox' value='{$row[0]}' name='item[]' class='ck' />
       {$row[0]}
     </td>
      <td>{$row[1]}</td>
    </tr>";
    }
  }
?>
</html>

后台

<?php 

//接收post传来的数组
$arr = $_POST["item"];

/**
* 批量删除 
* 思路:把前台批量选择的数据放在数组里,删除该数组即可 
* @param $arr <array()> 
* @return $res 成功or失败
*/
function batch_del($arr)
{
  @mysql_connect('localhost','root','');
  mysql_select_db('test');
  mysql_query('set names utf8');

  //把数组元素组合为字符串:
  $str = implode("','",$arr);
  //in 表示多个
  $sql = "delete from test where id in('{$str}')";
  $res = mysql_query($sql);

  if (!$res){
      echo "删除失败";
    }else {

      if (mysql_affected_rows()>0){
        echo "删除成功";
      }else {
        echo "没有行受到影响";  
      }
    } 
  }

//调用批量删除函数

batch_del($arr);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持绿夏网!


-----正文到此结束-----
返回列表
上一篇:
下一篇:

发表评论

快捷回复: 操作: