zoukankan      html  css  js  c++  java
  • Ajax向服务器请求对表单和表格进行操作

    第一次与后台数据库链接,表示过程不简单啊,似懂非懂,记录下来(代码简化片段

    1向服务器请求读取用户数据并在网页上打印表格

    //向服务器请求读取用户数据并在网页上打印表格
    /** * [getData 获取所有用户数据] * @return {[type]} [description] */ user.getUsersData=function(callback){ var xhr = new XMLHttpRequest(); var url="..."; //后台地址 xhr.open("GET", url); //读取 xhr.setRequestHeader("content-type", "application/json"); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { callback(xhr.responseText); //回调函数 } } xhr.send(null); } user.loadData=function(){ //user.loadData相当于一个刷新功能,在别处可调用局部刷新 user.getUsersData(function(res){ var list=JSON.parse(res).data; //JSON渲染是必须的,转换成对象 var L=list.length; var html="
    <table>"; //原生手动创建表格,在把服务器上传来的数据放进表格 for(var i=0;i<=L-1;i++){ html=html+"<tr dataid='"+list[i].id+"'> <td><input type='checkbox' class='checkinfo'> </td><td>"+list[i].username+"</td> <td>"+list[i].fullname+"</td></tr>"; //这里的id对应数据库里的id } html=html+"</table>"; document.querySelector(".scroll").innerHTML=html; //把表格插进网页 }); } user.loadData();

    2向表格中添加信息

    //向表格中添加信息
    /**
     * [addUsersData 添加用户信息]
     * @param  {[json]}   data [用户数据]
     * @param  {function} fn   [回调]
     */
    user.addUsersData=function(data,fn){
        var xhr = new XMLHttpRequest();
        var url="...";
        xhr.open("POST", url);     //发送
        xhr.setRequestHeader("content-type", "application/json");
        xhr.onreadystatechange = function() {
            if(xhr.readyState == 4) {
                var str=xhr.responseText;
                var obj=JSON.parse(str);
                fn&&fn(obj);
            }
        }
        data=JSON.stringify(data);
        xhr.send(data);
    }
    var add=document.getElementById("add");  
    add.onclick=function(){ 
        var data={                  //将数据存起来发送
            username:document.getElementById("count").value,    
            fullname:document.getElementById("name").value,
        };
        user.addUsersData(data,function(res){
            user.loadData();  //局部刷新
        });

    3修改表格中的信息

    //修改表格中的信息
    /**
     * [EditUsersData 编辑用户]
     * @param {[JSON]}   data [提交的数据]
     * @param {Function} fn   [回调]
     */
    user.EditUsersData=function(data,fn){
        var xhr = new XMLHttpRequest();
        var url="...";
        xhr.open("PUT", url);
        xhr.setRequestHeader("content-type", "application/json");
        xhr.onreadystatechange = function() {
            if(xhr.readyState == 4) {
                var str=xhr.responseText;
                var obj=JSON.parse(str);
                fn&&fn(obj);
            }
        }
        data=JSON.stringify(data);
        xhr.send(data);
    }
    //修改信息 信息先要显示在表单中
    var checkbox = document.querySelector("input[type='checkbox']:checked");
    var tr=checkbox.parentNode.parentNode;
    document.getElementById("count").value=tr.childNodes[1].innerText;
    document.getElementById("name").value=tr.childNodes[2].innerText;
    
    var edit=document.getElementById("edit");
    edit.onclick = function() {
        var checkbox = document.querySelector("input[type='checkbox']:checked");
        var tr=checkbox.parentNode.parentNode;
        var id=tr.getAttribute("dataid");  //这是添加表格时创建的id
        var data={
            id:id,
            username:document.getElementById("count").value,
            fullname:document.getElementById("name").value,
        };
    
        user.EditUsersData(data,function(){
            user.loadData();   //局部刷新
        });
    }

    以下是html简写

    <body>
        <form>
            <ul>账号:<input type="text" id="count"></ul>
            <ul>姓名:<input type="text" id="name"></ul>
            <input type="button" id="add">
            <input type="button" id="edit">
        </form>
        <div class="scroll">
            
        </div>
    </body>
  • 相关阅读:
    初认识AngularJS
    (imcomplete) UVa 10127 Ones
    UVa 10061 How many zero's and how many digits?
    UVa 11728 Alternate Task
    UVa 11490 Just Another Problem
    UVa 10673 Play with Floor and Ceil
    JSON对象和字符串的收发(JS客户端用typeof()进行判断非常重要)
    HTML.ActionLink 和 Url.Action 的区别
    EASYUI TREE得到当前节点数据的GETDATA方法
    jqueery easyui tree把已选中的节点数据拼成json或者数组(非常重要)
  • 原文地址:https://www.cnblogs.com/xiaoluoli/p/5868874.html
Copyright © 2011-2022 走看看