Home  >  Article  >  Web Front-end  >  ajax combined with mysql database to achieve partial data refresh

ajax combined with mysql database to achieve partial data refresh

php中世界最好的语言
php中世界最好的语言Original
2018-03-30 15:41:242322browse

This time I will bring you ajax combinationmysql databaseTo achieve partial data refresh, ajax combined with mysql database to achieve partial data refreshWhat are the precautions, the following is a practical case, one Get up and take a look.

Effect status: switch between status lock and non-lock by clicking on the lock status

1. Main program: 01.php imports smarty and mysql classes, and obtains the data import list template

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

2. The list template uses smarty Traverse the template data and display it, in which ajax is called to change the lock status

<!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});" rel="external nofollow" >锁定</a></td>
            {else}
            <td><a href="javascript:lock(1,{$list.uid})" rel="external nofollow" ;>取消锁定</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 response script, receives the data passed by ajax through the get method, changes the database content and The response text is sent back to the js script

<?php
  include &#39;./include/Mysql.class.php&#39;;
  $lock=$_GET[&#39;is_lock&#39;];
  $uid=$_GET[&#39;uid&#39;];
  $db=new Mysql;
  $result=$db->update('users',"is_lock=$lock","uid=$uid");
  if($result){
    echo true;
  }else{
    echo false;
  }
?>

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

Detailed graphic explanation of ajax implementation of dynamic pie charts and column charts

Determine whether it is an integer , what are the ways to write regular numbers for decimals or real numbers

The above is the detailed content of ajax combined with mysql database to achieve partial data refresh. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn