Jquery Ajax取值和绑定写入数据库

Posted iDennis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery Ajax取值和绑定写入数据库相关的知识,希望对你有一定的参考价值。

 

1、解决IE兼容性显示问题

<meta http-equiv="X-UA-Compatible" content="IE=edge,11" />

2、绑定Jquery,取 ”工号“ 对应的控件ID   #DetailsView1_txtStaffNo,执行input写入方法,当工号输入到6位长度执行Ajax方法调用数据取回 ”姓名“,

返回的值绑定回 #DetailsView1_txtStaffName 和 #txt_staffname_hidden两个地方。

<script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>
    <script language="javascript" type="text/javascript">
        $(document).ready(function () {
            $(#DetailsView1_txtStaffNo).on(input, function () {
                var staffno = $(this).val();
                var stringStaffName;
                if (staffno.length == 6) {

                    $.ajax({
                        type: "POST",
                        url: "Sign.ashx",
                        data: { staffNo: staffno }, //要传递的数据 
                        success: function (response) {
                            if (response == "isNotExist") {
                                alert("姓名和工号不存在,请重新输入,谢谢!");
                            }
                            else if (response == "isNotMatc6hInt") {
                                alert("工号不允许为非数字,且只能6位工号,请重新输入,谢谢!");
                            }
                            else {
                                $(#DetailsView1_txtStaffName).val(response);
                                $(#txt_staffname_hidden).val(response);
                            }
                        }
                    });
                }
            });
        });
    
    </script>

3、Ajax方法:

<%@ WebHandler Language="C#" Class="Sign" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;

public class Sign : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        String strStaffNo = context.Request.Params["staffNo"];
        SQLHelper sqlhelper = new SQLHelper();
        String strStaffName = "";
        try
        {
            if (strStaffNo !=null && strStaffNo !="")
            {
                bool b = Regex.IsMatch(strStaffNo.Trim(), "^\\d{6}$");
                if (!b)
                {
                    context.Response.Write("isNotMatc6hInt");
                    return;
                }
                System.Web.UI.WebControls.SqlDataSource sql = new System.Web.UI.WebControls.SqlDataSource();
                sql.DataSourceMode = System.Web.UI.WebControls.SqlDataSourceMode.DataSet;
                DataSet ResultSet = new DataSet();
                // SELECT [StaffNo], [ChineseName] FROM [VHMS_StaffNameSection]  where staffno = ‘123456‘ and ( ChineseName = N‘黄‘ or EnglishName = ‘HUANG‘)
                ResultSet = sqlhelper.RunQuery_getStaffName("SELECT [StaffNo], [ChineseName] FROM [StaffNameSection]  where staffno = ‘" + strStaffNo.Trim() + "");

                if (ResultSet.Tables[0].Rows.Count == 0)
                {
                    context.Response.Write("isNotExist");
                    return;
                }
                else
                {
                    strStaffName = ResultSet.Tables[0].Rows[0]["ChineseName"].ToString();
                    context.Response.Write(strStaffName);
                }
            }
            else
            {
                context.Response.Write("isNotMatc6hInt");
                return;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}

4、SQLHelper方法:

using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

/// <summary>
///SQLHelper 的摘要说明
/// </summary>

public class SQLHelper
{
    public DataSet RunQuery_getStaffName(string QueryString)
    {
        System.Data.SqlClient.SqlConnection DBConnection = null;
        DBConnection = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["webConnectionString_Dept"].ToString());
        DBConnection.Open();
        SqlDataAdapter DBAdapter = default(SqlDataAdapter);
        DataSet ResultsDataSet = new DataSet();

        try
        {
            DBAdapter = new SqlDataAdapter(QueryString, DBConnection);
            DBAdapter.Fill(ResultsDataSet);
            DBConnection.Close();
        }
        catch (Exception ex)
        {
            if (DBConnection.State == ConnectionState.Open)
            {
                DBConnection.Close();
            }
        }
        return ResultsDataSet;
    }
}
<connectionStrings>
<add name="webConnectionString_Dept" connectionString="Data Source=数据库服务器;Initial Catalog=库名;Persist Security Info=True;User ID=用户名;Password=密码"
providerName="System.Data.SqlClient" /> </connectionStrings>

5、数据写入方法:

    protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
    {
        Response.Write("<script languge=‘javascript‘>alert(‘成功提交,谢谢!‘);window.location.href=‘index.html‘</script>");
    }

    protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
    {
        string staffName = this.txt_staffname_hidden.Value.Trim();
        
        TextBox txtStaffNo = (TextBox)this.DetailsView1.FindControl("txtStaffNo");
        TextBox txtStaffName = (TextBox)this.DetailsView1.FindControl("txtStaffName");
        //txtStaffName.Text = staffName;
        lblstringStaffName.Text = staffName;
    }

 

以上是关于Jquery Ajax取值和绑定写入数据库的主要内容,如果未能解决你的问题,请参考以下文章

实用代码片段将json数据绑定到html元素 (转)

jQuery——事件和AJAX

html,jquery,ajax,servlet,mysql实现前端数据写入数据库

jquery绑定的事件对ajax刷新出的数据不生效,on可能受jquery版本影响

Javascript代码片段在drupal中不起作用

jQuery高级Ajax