删除和查看详情操作的共同语句:就是怎么显示表?

1.在主体中写表的开头行,想要显示的内容,并且加载数据也要显示的地方也建张表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<table width="100%" border="1" cellpadding="0" cellspacing="0">
   <tr>  //开头行显示的内容
        <td>代号</td>
        <td>名称</td>
        <td>价格</td>
        <td>产地</td>
        <td>库存</td>
        <td>操作</td>
  </tr>
             
  <tbody id="bg">   //循环遍历表显示的内容展示的位置
                 
  </tbody>
         
</table>

如图:

2.显示数据:用ajax方法遍历一张表,显示出表的内容

1
2
3
4
5
$.ajax({<br>  //因为不用传输数据所以就不用写data和传输类型了
    url:"xianshicl.php",  //编写处理页面
    dataType:"TEXT",  
    success: function(data){<br>      //执行处理页面结束的语句编写
      }<br>})

如图:

3.显示数据的处理页面

1
2
3
4
5
6
7
<?php
    include("DBDA.class.php");  /调用封装好的类
    $db new DBDA();   //构造新对象
     
    $sql "select * from fruit";  //查询水果表中的所有数据
     
    echo $db->StrQuery($sql);   //调用封装类中的字符串的放方法

上面用到的封装的转换字符串的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class DBDA
{
    public $host="localhost";  //数据库连接
    public $uid="root";   //数据库用户
    public $password="123";   //用户密码
    public $dbname="test2";  //数据库名
 
     
        //返回字符串的方法
    public function StrQuery($sql,$type=1)
    {
      $db new MySQLi($this->host,$this->uid,$this->password,$this->dbname);
      $r $db->query($sql);
             
      if($type==1)
      {
        $attr $r->fetch_all();
        $str "";
        foreach($attr as $v)
        {
          $str .= implode("^",$v)."|";  //拼接数组为字符串
        }
                 
      return substr($str,0,strlen($str)-1);  //截取字符串:最后的拼接符不显示
     
      }
      else
      {
        return $r;
      }
    }
}       

4.步骤2中的执行处理页面结束的语句编写:

1
2
3
4
5
6
7
8
9
var hang = data.split("|");  //拆分字符“|”串:显示行
                     
var str = "";
for(var i=0;i<hang.length;i++)
{
   var lie = hang[i].split("^");  //拆分字符串“^”:显示列
  str += "<tr><td>"+lie[0]+"</td><td>"+lie[1]+"</td><td>"+lie[2]+"</td><td>"+lie[3]+"</td><td>"+lie[4]+"</td><td>操作</td></tr>";
}              
 $("#bg").html(str); //将处理的数据放到上面显示的div中   

  

数据的显示效果,删除和查看时将操作一栏修改并且加入按钮的触发事件就可以了:需要修改的代码就是“操作”这一列:

1
str += "<tr><td>"+lie[0]+"</td><td>"+lie[1]+"</td><td>"+lie[2]+"</td><td>"+lie[3]+"</td><td>"+lie[4]+"</td><td>操作</td></tr>";  

一、数据的删除处理

1.在循环数据库的时候,在最后的一个单元格中添加删除按钮,然后就是起个名字便于对其添加数据,写个主键值

1
<td><input type='button' value='删除' class='shanchu' code='"+lie[0]+"'/></td>

2.对删除按钮添加事件

1
2
3
$(".shanchu").click(function(){  //找到删除按钮,对其添加单击事件,单击之后执行事件
    var code = $(this).attr("code");   //找到属性值
})

3.调用ajax方法,ajax里的步骤

1
2
3
4
5
6
7
8
$.ajax({
    url:"shanchucl.php",   //处理页面的名称
    data:{c:code},  //为值取个名字
    type:"POST",   //传值方式
    dataType:"TEXT",  //数据类型
    success: function(d){   <br>      //处理页面执行成功后在执行下面的语句
        }  
})

4.接下来写删除的处理页面,这个页面写过很多次了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include("DBDA.class.php");  //调用封装
$db new DBDA();   //造新对象
 
$code $_POST["c"];  //将值传过来
$sql "delete from fruit where ids='{$code}'";   //写sql语句
if($db->Query($sql,0))   //执行语句并且判断
{
    echo "OK"
}
else
{
    echo "NO"
}

5.返回调用的ajax中开始写成功后的代码

1
2
3
4
5
6
7
8
if(d.trim()=="OK")
  {
    shuju();  //因为整体的从显示到删除的ajax都要在这重新写一遍,那么可以把整个写成个方法,然后这样调用
  }
  else
  {
    alert("删除失败!");
  }

6.这样就可以完成对数据的删除了

(原数据图)

(随便删除一条数据图)

二、查看数据

点击查看数据,会弹出数据详情的窗口

1.既然是详情,那么修改上面所讲的那一句语句就可以:在操作的那添加个按钮,传一个主键值,删除时肯定是用代号来进行查看,因为代号没有重复的

起一个名字,然后传一个主键值

1
str += "<tr><td>"+lie[0]+"</td><td>"+lie[1]+"</td><td>"+lie[2]+"</td><td>"+lie[3]+"</td><td>"+lie[4]+"</td><td><input type='button' value='详情' class='xiangqing' code='"+lie[0]+"'/></td></tr>"

2.想要显示的可以少一点,可以只显示名称和操作,这两列

1
2
3
4
5
6
7
8
<table width="50%" border="1" cellpadding="0" cellspacing="0">
  <tr>
    <td>名称</td>
    <td>操作</td>
  </tr>
  <tbody id="bg">           
  </tbody>  
</table>

对于ajax的遍历时将div也写成两个

1
2
3
4
5
for(var i=0;i<hang.length;i++)
  {
    var lie = hang[i].split("^");  //拆分字符串“^”:显示列
    str += "<tr><td>"+lie[1]+"</td><td><input type='button' value='详情' class='xiangqing' code='"+lie[0]+"'/></td></tr>"
  }

效果如图:

注意:这里的对添加窗口有两种方法,一个是用自己写好的封装类,二是可以用bootstrap的弹窗

一是用自己写好的封装类

3.1 对“详情”进行编写的时候可以使用封装好的弹窗js,引入弹窗js还有弹窗的样式表,应为封装的js语句很多,js显示基本功能如下:

1
2
3
4
5
6
7
width : config.width || 300, //宽度
height : config.height || 200, //高度
buttons : config.buttons || ''//默认无按钮
title : config.title || '标题'//标题
content : config.content || '内容'//内容
isMask : config.isMask == false?false:config.isMask || true, //是否遮罩
isDrag : config.isDrag == false?false:config.isDrag || true, //是否移动

4.1 根据上面的主键值,对详情按钮添加事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(".xiangqing").click(function(){    //对详情添加单击事件
    var code = $(this).attr("code"); 
    $.ajax({
        url:"chakancl.php",    //详情的处理页面
        data:{c:code},  //传入处理页面的值
        type:"POST",  //传值方式
        dataType:"TEXT",
        success: function(d){
            var lie = d.split("^");<br>              //想要在窗口中显示的内容
            var c = "<div>代号:"+lie[0]+"</div><div>姓名:"+lie[1]+"</div><div>性别:"+lie[2]+"</div><div>民族:"+lie[3]+"</div><div>生日:"+lie[4]+"</div>";<br>              //调用封装好的弹窗方法
            var win = new Window({
                width : 300, //宽度
                height : 200, //高度
                buttons :  ''//默认无按钮
                title : '详情介绍'//写入显示的标题
                content : c, //内容
                isMask : true, //有遮罩
                isDrag : true, //能够移动
            })
        }  
    })
})

5.1 编写详情的处理页面:就是根据传过去的code找到代号那一列,然后执行就可以,当然是字符串形式的数据,就要进行转换

这是封装类中的字符函数里的:

1
2
3
4
5
6
7
//执行语句后是个二维数组,下面进行字符串装换<br>$str = ""; 
foreach($attr as $v)
{
    $str .= implode("^",$v)."|";  //拼接数组为字符串implode()方法
}
                 
return substr($str,0,strlen($str)-1);  //截取字符串:最后的拼接符不显示substr()方法

处理页面的代码编写

1
2
3
4
5
6
7
8
<?php
include("DBDA.class.php");
$db new DBDA();
 
$code $_POST["c"];
$sql "select * from fruit where ids='{$code}'";
 
echo $db->StrQuery($sql);  

最后就是走起来看效果,单击详情按钮后,就会显示窗口了

单击桔子后面的详情按钮,就弹出窗口:

二是用bootstrap的弹窗

3.1首先也要引入bootstrap的js和css包:

1
2
<script src="dist/js/bootstrap.min.js"></script>
<link href="dist/css/bootstrap.min.css" rel="stylesheet" type="text/css" />

3.2在主体部分写入弹窗:直接从bootstrap的官网进行复制粘贴就可以

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h4 class="modal-title" id="myModalLabel">详细信息</h4>  //标题的地方
            </div>
            <div class="modal-body" id="content"></div>  // 显示是内容的地方
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>   //按钮
                 
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal -->
</div>

3.3在进行显示数据时记得在遍历结束时,在详情按钮中加入属性

1
<td><input type='button' value='详情' class='xiangqing' code='"+lie[0]+"'  data-toggle='modal' data-target='#myModal' /></td>

3.4在详情的单击事件遍历结束后要将内容写入上面的“显示的内容”的地方

这个地方和第一种方法差不多,不同的地方就是第一种方法引入了封装方法,第二种方法是将显示结果交给显示内容的div中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(".xiangqing").click(function(){    //对详情添加单击事件
    var code = $(this).attr("code"); 
    $.ajax({
        url:"chakancl.php",    //详情的处理页面(和第一种方法的处理页面一样)
        data:{c:code},  //传入处理页面的值
        type:"POST",  //传值方式
        dataType:"TEXT",
        success: function(d){
            var lie = d.split("^");
              //想要在窗口中显示的内容
            var c = "<div>代号:"+lie[0]+"</div><div>姓名:"+lie[1]+"</div><div>性别:"+lie[2]+"</div><div>民族:"+lie[3]+"</div><div>生日:"+lie[4]+"</div>";
              $("#content").html(c);
               }
    }) 
})

单击桃子后的详情按钮,弹窗效果如下:  

删除和查看详情就是以上。

用ajax对数据进行删除和查看的更多相关文章

  1. Ajax对数据的删除与查看

    1.数据库找一张表: 颜色表2.主页面主页面的代码用到tbody:TBODY作用是:可以控制表格分行下载,从而提高下载速度.(网页的打开是先表格的的内容全部下载完毕后,才显示出来,分行下载可以先显示部 ...

  2. Ajax请求数据与删除数据后刷新页面

    1.ajax异步请求数据后填入模态框 请求数据的按钮(HTML) <a class="queryA" href="javascript:void(0)" ...

  3. Django-choices字段值对应关系(性别)-MTV与MVC科普-Ajax发json格式与文件格式数据-contentType格式-Ajax搭配sweetalert实现删除确认弹窗-自定义分页器-批量插入-07

    目录 models 字段补充 choices 参数/字段(用的很多) MTV与MVC模型 科普 Ajax 发送 GET.POST 请求的几种常见方式 用 Ajax 做一个小案例 准备工作 动手用 Aj ...

  4. MVC5 + EF6 + Bootstrap3 (13) 查看详情、编辑数据、删除数据

    Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-rud.html 系列教程:MVC5 + EF6 + Boo ...

  5. ajax 实现加载页面、删除、查看详细信息,以及bootstrap网页的美化

      由于有些的程序员可能不是很会Photoshop,所以为了美化页面,我们可以借助工具bootstrap,实现起来相对就要比之前做的美观一些, 今天我用bootstrap把之前做的显示表格进行了一下美 ...

  6. form表单提交数据,页面必定会刷新,ajax提交数据不会刷新,做到悄悄提交,多选删除,ajax提交实例

    很多页面用到的模态对话框,如知明网站https://dig.chouti.com/的登录页都是模态对话框, 当点登录时,是用的ajax提交,因为输入错了信息,有返回消息,而页面没有刷新. jquery ...

  7. ajax Post数据,并得到返回结果,密码加密(Select,checkbox)

    使用ajax Post数据到后台Server,并从后台返回数据给前端WEB: urls.py: from django.conf.urls import url from aptest import ...

  8. 爬虫进阶之Selenium和chromedriver,动态网页(Ajax)数据抓取

    什么是Ajax: Ajax(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意 ...

  9. ajax结合sweetalert实现删除按钮动态效果

    目录 一.ajax结合sweetalert实现删除按钮动态效果 二.bulk_create批量插入数据 1. 一条一条插入 2. 批量插入 三.自定义分页器 一.ajax结合sweetalert实现删 ...

随机推荐

  1. 史上最全阿里 Java 面试题总结

    以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么 ...

  2. 给大家一些改善 Python 程序的 91 个建议

    读了一本还不错的书「编写高质量代码改善 Python 程序的 91 个建议」,大多数的建议是真心不错,我虽然写python也有3年多了,但是有些地方确实没去注意过,特地整理了一下,给大家参考. 我已经 ...

  3. Effective Java 第三版——60. 需要精确的结果时避免使用float和double类型

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  4. 【新手向】使用nodejs抓取百度贴吧内容

    参考教程:https://github.com/alsotang/node-lessons 1~5节 1. 通过superagent抓取页面内容 superagent .get('http://www ...

  5. asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度

    APS.NET MVC 上传文件出现  System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...

  6. IDEA中MAVEN项目有多个子目录,如何加载构建

    ddts这个项目有三个子目录,每个子目录下面也都有一个 pom.xml       此时需要 右键子目录的 pom.xml,选择Add as Maven Project,在上图中cli.core两个目 ...

  7. 自动生成实体类和xml

    1 首先eclipse需要安装一个插件 2 两个配置文件 1 generator.properties 2 generator.xml <?xml version="1.0" ...

  8. js中对象和对象创建方法

    这一次我们来说一说在JavaScript中经常会用到的一个复杂基本类型,对象,先从对象的属性讲起,再讲对象的创建方法,基本涵盖了创建对象的各种方法,大家一起学习呀~ 一.对象 要掌握对象的使用及继承, ...

  9. Perl的命令行参数和ARGV

    程序名:$0 $0表示当前正在运行的Perl脚本名.有3种情况: 如果执行方式为perl x.pl,则$0的值为x.pl而非perl命令本身 如果执行方式为./x.pl,则$0的值为./x.pl 如果 ...

  10. 翻译:group_concat()函数(已提交到MariaDB官方手册)

    本文为mariadb官方手册:group_concat()函数的译文. 原文:https://mariadb.com/kb/en/group_concat/ 我提交到MariaDB官方手册的译文:ht ...