效果状态:通过点击锁定状态实现状态锁定与不锁定之间的切换

1.主程序:01.php导入smarty和mysql类,取得数据导入列表模板

<?php
    include './include/Mysql.class.php';
    include './libs/Smarty.class.php';
    $db=new Mysql;
    $smarty=new Smarty;
    $lists=$db->getALL('users');
    $smarty->assign('lists',$lists);
    $smarty->display('list.html');
?>

2.列表模板采用smarty遍历模板数据并显示,其中调用ajax改变锁定状态

<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8>
    <title>用户权限展示表</title>
</head>
<body>
        <table align="center" border="1" width="500">
            <center><h2>用户权限表</h2></center>
            <tr>
                <th>uid</th><th>用户名</th><th>密码</th><th>锁定状态</th><th>角色</th>
            </tr>    
            {foreach $lists as $list}
                <tr align="center">
                    <td>{$list.uid}</td>
                    <td>{$list.username}</td>
                    <td>{$list.password}</td>
                    {if $list.is_lock==1}
                        <td><a href="javascript:lock(0,{$list.uid});">锁定</a></td>
                        {else}
                        <td><a href="javascript:lock(1,{$list.uid})";>取消锁定</a></td>    
                    {/if}        
                    {if $list.role==1}
                            <td>管理员</td>
                    {else}
                            <td>编辑者</td>        
                    {/if}
                </tr>        
            {/foreach}    
        </table>    
</body>
        <script type="text/javascript">
            function lock(lock,uid){
                    //创建ajax对象
                    var xhr=new XMLHttpRequest();

//打开一个链接
                    xhr.open('get','02.php?is_lock='+lock+"&uid="+uid);
                    //发送ajax请求
                    xhr.send(null);
                    //设置回调、监听函数
                    xhr.onreadystatechange=function(){
                        //如果ajax状态码响应正常且网络正常,获取响应文本
                        if(xhr.readyState==4&&xhr.status==200){
                            if(xhr.responseText){
                                window.location.reload();
                            }else{
                                alert("切换状态失败!");
                            }

}
                    }
                }
        </script>
</html>

3.ajax响应脚本,接收ajax通过get方式传递过来的数据更改数据库内容并响应文本传回js脚本

<?php
    include './include/Mysql.class.php';
    $lock=$_GET['is_lock'];
    $uid=$_GET['uid'];

$db=new Mysql;
    $result=$db->update('users',"is_lock=$lock","uid=$uid");
    if($result){
        echo true;
    }else{
        echo false;
    }
?>

ajax结合mysql数据库和smarty实现局部数据状态的刷新的更多相关文章

  1. PHP、jQuery、AJAX和MySQL 数据库实例

    index.html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  2. 利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据

    登录界面 <body><form action="login1.php" method="post"><div>用户名:&l ...

  3. 如何用 ajax 连接mysql数据库,并且获取从中返回的数据。ajax获取从mysql返回的数据。responseXML分别输出不同数据的方法。

    开讲前,先说下网上,大部分的关于这方面的博文或者其他什么的,就我自己的感觉,第一说得不详细,第二语言不能很好的被初学者了解. 我这篇博文的标题之所以用了三句,是为了方便其他人好查找: 这里介绍的方法有 ...

  4. 也说php从mysql数据库通过服务器端json返回数据出现乱码问题

    我最近需要用js和json与mysql数据库做一个两级联动的下拉菜单,发现当从数据库中返回的是中文时客户端会出现乱码问题,经过在百度上查找终于找到了解决办法如下: while($row=$MySqlc ...

  5. MySQL数据库导入或者同步大量数据时数据丢失解决方案

    相信大家都经常遇到这样的情况,我们在编码的过程中经常需要在调试代码的时候切换到本地的数据库上做修改调试,如果当测试数据库的数据在几十万或者上百万数据的时候,我们无论是通过恢复备份/导入SQL的方式来把 ...

  6. 通过java代码往mysql数据库中写入日期相关数据少13个小时

    通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...

  7. Delphi7连接MySql数据库-DBGrid控件显示数据

    一个简单的Delphi7小程序,使用MySql数据库做简单查询,用DBGrid控件显示结果,实现过程如下: (1)在MySql中新建demouser表,插入记录用于测试. (2)在Delphi7中新建 ...

  8. mysql数据库通过二进制 -【恢复数据记录】

    1.修改配置文件 vi /etc/my.cnf log-bin = binlog systemctl restart mysqld mysql -uroot -p123456 mysql> sh ...

  9. 使用JDBC在MySQL数据库中快速批量插入数据

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch ...

随机推荐

  1. nginx__的简单搭建和 wsgi

    4 部署 1 配置 uwsig(配置文件) pip3 install uwsgi 1 mkdir uwsgi 2 cd uwsgi 3 touch test_uwsig.ini [uwsgi] # 指 ...

  2. vue.js 初步学习

    跟着b站上的视频来学 首先什么是vue.js? 跟着b站上视频来学:(o゚v゚)ノ <!DOCTYPE html> <html lang="en"> < ...

  3. 深度学习—从LeNet到DenseNet

    CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF Net到VGG,GoogLeNet再到ResNet和最近的DenseNet,网络越来越深, ...

  4. 微信中浏览器支持input调用摄像头和只能上传图片

    <input type="file" capture="camera" accept="image/*" />

  5. Codeforces 348 D - Turtles

    D - Turtles 思路: LGV 定理 (Lindström–Gessel–Viennot lemma) 从{\(a_1\),\(a_2\),...,\(a_n\)} 到 {\(b_1\),\( ...

  6. nomn文件分析

    #encoding=gbk import os import re import math from os import path ''' 手动输入文件nmon文件路径,要截取的开始时间,结束时间 ' ...

  7. pipenv安装报错ReadTimeoutError

    原因:pip下载源默认设置为国外 解决:将pip下载源切换为国内地址 操作: 在C:\Users\Administrator\下新建pip文件夹,在创建pip.ini文件,拷贝下面代码进去,保存 切换 ...

  8. hbase实践(十六) BlockCache

    0 引言 和其他数据库一样,优化IO也是HBase提升性能的不二法宝,而提供缓存更是优化的重中之重. 根据二八法则,80%的业务请求都集中在20%的热点数据上,因此将这部分数据缓存起就可以极大地提升系 ...

  9. Spark1

    Spark集群 0.0体验安装Spark在集群单节点 1.tar tar -xzvf xxx.tgz -C /soft/ ln -s /soft/spark-2.1.0-bin-hadoop2.7 / ...

  10. jQuery.extend([deep], target, object1, [objectN])

    jQuery.extend([deep], target, object1, [objectN]) 概述 用一个或多个其他对象来扩展一个对象,返回被扩展的对象.直线电机 如果不指定target,则给j ...