博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax post 提交数据
阅读量:5364 次
发布时间:2019-06-15

本文共 3124 字,大约阅读时间需要 10 分钟。

实现功能:前端html页面,填入相应的预约信息提交到后台返回并返回信息

1.前端ajax代码

<script type="text/javascript">

    $(function () {

        //表单提交

        $("#btnSubmit").click(function () {

            var txtname = $("#txtname").val();

            var txttel = $("#txttel").val();

            var txtOrderDepartment = $("#txtOrderDepartment").val();

            var txtOrderTime = $("#txtOrderTime").val();

            var txtOrderDescription = $("#txtOrderDescription").val();

            if (txtname == null || txtname == "") {

                alert("用户名不能为空!");

            }

            else

            {

                $.ajax({

                    type: "POST",

                    url: "../../tools/submit_ajax.ashx?action=order_add",

                    dataType: "json",

                    data: { txtname: txtname, txttel: txttel, txtOrderDepartment: txtOrderDepartment, txtOrderTime: txtOrderTime, txtOrderDescription: txtOrderDescription },

                    success: function (data, msg) {

                        if (data.status == 1) {

                            alert(data.msg);

                        }

                        else {

                            alert(data.msg);

                        }

                    }

                });

            }

        

        });

    });

</script>

2.Ashx文件中相应代码

public void ProcessRequest(HttpContext context)

        {

            //取得处事类型

            string action = DTRequest.GetQueryString("action");

 

            switch (action)

            {

                case "comment_add": //提交评论

                    comment_add(context);

                    break;

                case "comment_list": //评论列表

                    comment_list(context);

                    break;

}

}

#region 用户预约=====================================

        private void order_add(HttpContext context)

        {

            DTcms.Model.article_comment model = new Model.article_comment();

            model.user_name = DTRequest.GetFormString("txtname").Trim();//姓名

            model.reply_content = DTRequest.GetFormString("txttel").Trim();

            model.add_time = DateTime.Now;//添加预约的时间

            model.reply_time = Convert.ToDateTime(DTRequest.GetFormString("txtOrderTime").Trim());

            model.content = DTRequest.GetFormString("txtOrderDepartment").Trim()+" | "+DTRequest.GetFormString("txtOrderDescription").Trim();//预约描述

            //DTRequest.GetFormString("txtOrderDepartment").Trim()+预约科室\

            model.channel_id = 27;

            string userip = DTRequest.GetIP();

            DTcms.BLL.article_comment bll = new BLL.article_comment();

         

            //保存注册信息

            if (siteConfig.commentstatus == 0)

            {

                context.Response.Write("{\"status\":0, \"msg\":\"系统故障,暂停预约!\"}");

                return;

            }

           

            //设置对应的状态

            int newId = bll.Add(model);

            if (newId < 1)

            {

                context.Response.Write("{\"status\":0, \"msg\":\"系统故障,请联系网站管理员!\"}");

                return;

            }

            else

            {

                context.Response.Write("{\"status\":1, \"url\":\"" + new Web.UI.BasePage().linkurl("index") + "\", \"msg\":\"预约成功!\"}");

            }

            return;

        }

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------后续更新----------------------------------------------------------------------------------------------------

距离上段博客已有两年未更新了,今日遇到了ajax中的一个问题,解决后省了好大的麻烦,于是乎贴出来供大家参考~!

前端ajax代码如下:

上述代码中,在一个ajax中将一个div标签的内容填充,其中填充的内容又调用另外一个ajax方法获取可得。之前没有写属性:async:false;即默认async属性默认为true.

也就是说在执行这个ajax的时候不管服务器端有没有返回到前端值都将往下执行,故在ajax执行完毕后不管有没有值,在ajax括号外,这个变量一直为空。

加过这个async为false之后,问题得到解决。

官方解释如下:

async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面的脚本(另一个线程)

 当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),知道function1()部分执行完毕。 

转载于:https://www.cnblogs.com/Wbely/p/3844460.html

你可能感兴趣的文章
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I &amp; II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
response和request
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>
php环境搭建脚本
查看>>
php 编译常见错误
查看>>
MES架构
查看>>