如图:信息展示页面 ,在每一项前面加复选框,全选按钮,批量删除按钮
本页面代码具体如下:
<?php $db = new MySQLi("localhost","root","123","ceshi"); $sql = "select info.code,info.name,sex,nation.name,birthday from info,nation where info.nation=nation.code"; $result = $db->query($sql); if($result){ $arr = $result->fetch_all(); foreach($arr as $v){ $sex = $v[2]?"男":"女"; echo "<tr> <td><input class='ck' type='checkbox' name='ck[]' value='{$v[0]}' />{$v[0]}</td> <td>{$v[1]}</td> <td>{$sex}</td> <td>{$v[3]}</td> <td>{$v[4]}</td> <td> <a href='./delete.php?code={$v[0]}' onclick=\"return confirm('确认删除么?')\"> <button type='button' class='btn btn-primary btn-sm'>删除</button></a><a href='./xiugai.php?code={$v[0]}' > <button type='button' class='btn btn-primary btn-sm'>修改</button></a> </td> </tr>"; } } ?> </tbody> </table> <div><input type="submit" value="批量删除" /><a href="./tianjia.php">添加数据</a></div> </form> <script type="text/javascript"> var ckall = document.getElementById("ckall"); ckall.onclick = function(){ var xz = ckall.checked; var ck = document.getElementsByClassName("ck"); for(var i=0;i<ck.length;i++){ ck[i].checked = xz; } } </script>
我们在点击批量删除按钮提交时跳转到一个PHP页面处理数据,提交时可能会勾选多个选项,那么我们可以把勾选中的选项代号以数组的形式提交给该 PHP页面进行处理,如代码中我们把name规定成ck [ ]这么一个数组。
PHP页面中运用的删除操作可以用SQL语句:
delete from info where code in('p001','p002','p003')
但是我们提交的并不是'p001','p002','p003',而是一个数组ck,ck中包含p001 p002 p003三个值。
那么我们可以运用implode( )方法把p001 p002 p003三个值用','粘合,变成p001','p002','p003
具体代码如下:
<?php $arr = $_POST["ck"]; //delete from info where code in('p001','p002','p003') $str = implode("','",$arr); $sql = "delete from info where code in('{$str}')"; $db = new MySQLi("localhost","root","123","mydb"); $result = $db->query($sql); if($result){ header("location:main.php"); }else{ echo "删除失败!"; }