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

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()方法

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

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

二是用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
$(".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);  //将遍历的结果交给内容的div<br>          }
    }) 
})

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

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

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

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()方法

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

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

二是用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
$(".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);  //将遍历的结果交给内容的div<br>          }
    }) 
})

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

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

thinkphp中用ajax对数据库进行操作的更多相关文章

  1. thinkphp 3.2 部分数据库连贯操作phpstorm helper 文件

    <?php class Helper { /** * 用于设置数据写入和查询是否严格检查是否存在字段. * 默认情况下不合法数据字段自动删除,如果设置了严格检查则会抛出异常 * 如: * str ...

  2. thinkphp使用ajax

    thinkphp使用ajax和之前使用ajax的方法一样,不同点在于之前的ajax中的url指向了一个页面,而thinkphp里面的url需要指向一个操作方法. 一.thinkphp使用ajax返回数 ...

  3. TP框架---thinkphp使用ajax

    thinkphp使用ajax和之前使用ajax的方法一样,不同点在于之前的ajax中的url指向了一个页面,而thinkphp里面的url需要指向一个操作方法. 一.thinkphp使用ajax返回数 ...

  4. thinkphp 和 laravel使用sql语句操作db和源码浅析

    thinkphp 和 laravel是phper开发中用的比较多的两个框架,无所谓好坏,看个人习惯及喜爱! 前言对于一个PHP应用,可能最多的就是操作数据,以致于初学者有时只把php当做数据库增删查改 ...

  5. legend---十、thinkphp中如何进行原生sql操作

    legend---十.thinkphp中如何进行原生sql操作 一.总结 一句话总结:query方法和execute方法 Db类支持原生SQL查询操作,主要包括下面两个方法: query方法 quer ...

  6. php中数据库的操作

    1.Mysql客户端介绍,命令行:这种方法不友好. 2.Mysql客户端介绍,Web形式的可视化界面(phpMyAdmin) 优点:只要有浏览器就可以操作数据库 缺点: a)创建数据库

  7. ThinkPHP中ajax提交数据

    最近在做项目时遇到了一些需要从页面用ajax提交数据到后台的操作,无奈本人技术有限,网上苦寻,研究了一下ajax和thinkPHP的结合,黄天不负苦心人,终于搞定了. 闲话少叙,进入正题:我需要从页面 ...

  8. thinkphp框架 的 链接数据库和操作数据

    框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写con ...

  9. thinkphp中cookie和session中操作数组的方法

    thinkphp中cookie和session中操作数组的方法 一.ThinkPHP模板中如何操作session,以及如果session中保存的是数组的情况 在ThinkPHP的模板中操作sessio ...

随机推荐

  1. matlab——sparse函数和full函数

    转载:http://www.cnblogs.com/lihuidashen/p/3435883.html matlab——sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换)   函数功能:生成 ...

  2. controller修改response返回值

    1.responseBodyAdvice2. aop3.过滤器.拦截器

  3. springMVC整理01--搭建普通的工程

    1. Spring MVC 简介Spring MVC 是 Spring 基于 MVC 设计理念提供的一个表现层的 Web 框架.是目前主流的MVC 框架之一.Spring MVC 通过一套 MVC 注 ...

  4. Marriage Match III HDU - 3277(二分权值 + 拆点 建边)

    题意: 只不过是hdu3081多加了k种选择 想一下,最多能玩x轮,是不是就是每个女生能最多选x个男生 现在题中的每个女生比3081多了k中选择   那就把女生拆点  i  i‘ i --> i ...

  5. 百度分享不支持https的解决方案(单独部署静态文件)

    首先是参考了博客,下载百度分享的静态代码 static 链接为:https://www.cnblogs.com/mmzuo-798/p/6434576.html 后来在nginx的 nginx.con ...

  6. DevOps 10秒钟进阶大师之路

    简介:DevOps(Development开发和Operations运维的组合词),是一种文化.原则.思维.理念.组织. DevOps 是一个完整的面向开发.运维的工作流,以 IT 自动化以及持续集成 ...

  7. 【CodeForces 717C】Potions Homework

    BUPT 2017 summer training (for 16) #1G 题意 每个人有一个懒惰值,每个任务有个难度,一开始每个人的任务和懒惰值都为\(a_i\),完成任务时间是懒惰值乘以难度,现 ...

  8. Educational Codeforces Round 33 (Rated for Div. 2) F. Subtree Minimum Query(主席树合并)

    题意 给定一棵 \(n\) 个点的带点权树,以 \(1\) 为根, \(m\) 次询问,每次询问给出两个值 \(p, k\) ,求以下值: \(p\) 的子树中距离 \(p \le k\) 的所有点权 ...

  9. python3 函数function

    def function(arg): pass 变量: 由字母.数字和下划线构成,不能以数字开头,不能任意特殊字符 变量定义规范,使用驼峰式或者下划线式格式 变量定义尽量简明,易懂,方便使用者应用 作 ...

  10. 【BZOJ5314】[JSOI2018]潜入行动(动态规划)

    [BZOJ5314][JSOI2018]潜入行动(动态规划) 题面 BZOJ 洛谷 题解 不难想到一个沙雕\(dp\),设\(f[i][j][0/1][0/1]\)表示当前点\(i\),子树中一共放了 ...