关于Ajax如何连接数据库?

关于Ajax如何连接数据库?,第1张

既然是用AJAX,当然AJAX是调用服务端方法访问数据库再对数据库进行增、删、改。首先你要理解WEB编程的原理,当一个网页打开后你和服务端的连接是己经断了的,服务端保存不了你当前的状态。不象CS编程。

AJAX是客户端的,你肯定不能直接在前台javascript中访问服务端的数据库。

用AJAX第一步,你必需要写好服务端的一个方法,如写一个删除的方法doDelObject(string id){...}你在客户端就调用这个方法。参数是你要删除数据的ID,如:doDelObject(ID001),然后服务端删除完毕后就会返回这个方法的值给你。删除的具体方法那就和AJAX无关了。

 另外,做AJAX有好多框架选择,建议你用jquery,如果是.net2003的话有ajaxpro,2005的话有AjaxControlToolkit等。

   $.ajax({

        type: 'post', // 请求方式

        url: '', // 填写你后台给你的接口体质

        data: {

         json:'xx',

         json1:'xx'

        }, // 填写你后台需要的数据,格式为json

        dataType: 'json',

        success: function (data) { // success为成功时候的处理

            //data 为后台返回的参数

        },

        error: function (xhr, type) {

         // 请求失败的处理

        }

      })

直接把上面这段代码复制一下 把参数填一下就能请求到了。

首先写一个一般处理程序来获取到你要加载到前台的数据,并序列化成json格式。

//代码实例

public class AjaxUserList : IHttpHandler {

        public void ProcessRequest(HttpContext context) {

            context.Response.ContentType = "text/plain"

            BLL.UserInfoBll userInfoBll = new BLL.UserInfoBll()

            int pageIndex

            if (!int.TryParse(context.Request["pageIndex"],out pageIndex)) {

                pageIndex = 1

            }

            int pageSize = 5

            int pageCount = userInfoBll.GetPageCount(pageSize)

            //判断当前页码的取值范围

            pageIndex = pageIndex < 1 ? 1 : pageIndex

            pageIndex = pageIndex > pageCount ? pageCount : pageIndex

            //获取分页数据

            List<Model.UserInfo> userList = userInfoBll.GetPageList(pageIndex, pageSize)

            //获取页码条

            string pageBar = Util.PageBar.GetPageBar(pageIndex, pageCount)

            //***********************************************************

            //使用匿名类将多组数据序列化成Json格式

            //***********************************************************

            JavaScriptSerializer js = new JavaScriptSerializer()

            string json = js.Serialize(new { resultUserList = userList, resultPageBar = pageBar })//此处使用了匿名类将userList集合和pageBar进行封装后,再序列化

            //***********************************************************

            context.Response.Write(json)

        }

        public bool IsReusable {

            get {

                return false

            }

        }

    }

然后,前台ajax请求这个一般处理处理程序获取到json数据,再通过js将数据添加到html。

//加载用户列表示例

        function LoadUserInfo(pageIndex) {

            $.post("AjaxUserList.ashx", { "pageIndex": pageIndex }, function (data) {

                var serverData = $.parseJSON(data)

                for (var i = 0 i < serverData.resultUserList.length i++) {

                    $("<tr><td>" + serverData.resultUserList[i].ID + "</td><td>" + serverData.resultUserList[i].UName + "</td><td>" + serverData.resultUserList[i].UPwd + "</td><td>" + ChangeDateFormat(serverData.resultUserList[i].SubTime) + "</td><td>" + serverData.resultUserList[i].Remark + "</td><td><a href='javascript:void(0)' class='details' Uid='" + serverData.resultUserList[i].ID + "'>详细</a></td><td><a href='javascript:void(0)' class='edits' Uid='" + serverData.resultUserList[i].ID + "'>编辑</a>  <a href='javascript:void(0)' class='deletes' Uid='" + serverData.resultUserList[i].ID + "' UName='" + serverData.resultUserList[i].UName + "'>删除</a></td></tr>").appendTo("#tabUserList")

                }

            })

        }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6655884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存