zoukankan      html  css  js  c++  java
  • Jquery 动态生成表单 并将表单数据 批量通过Ajax插入到数据库

    利用Jquery 动态生成 Table 表单 之后利用each 方法来遍历所有文本框获取文本的value值  并通过Ajax 将数据 提交到Web服务里把数据插入数据库

    Html页面

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script src="js/Jquery1.7.js"></script>
        <script src="js/MyAdd.js"></script>
        <link href="css/MyPages.css" rel="stylesheet" />
    </head>
    <body>
        <div >
            <div id="divInsert">
                <div id="divBtn">
                    <input id="btnDelete" type="button" value="删除行" />
                    <input id="btnData" type="button" value="插入行" />
                    <input id="btnInsert" type="button" value="添加行" />
                </div>
            </div>
            <table id="tab" cellpadding="0" cellspacing="0">
                <tr>
                    <td rowspan="2">姓名</td>
                    <td rowspan="2">年龄</td>
                    <td colspan="2">血压</td>
                </tr>
                <tr>
                    <td>高压</td>
                    <td>低压</td>
                </tr>
            </table>
        </div>
        <div id="mydiv"></div>
    </body>
    </html>

    JS文档

    /// <reference path="../WebService1.asmx" />
    /// <reference path="../WebService1.asmx" />
    $(function () {
        //定义一个全局变量i,用来标识添加了几行
        var row = 0;
        var strValue = "";
        //将一行添加到table中去
        $('#btnInsert').click(function () {
            row++;
            //字符串拼接tr一行中的内容
            var tr = "<tr>";
            for (var i = 0; i < 3; i++) {
                tr += "<td><input id='" + row + "text'" + i + "+' type='text' value=" + row +""+ i + " /></td>";
            }
            tr += "<td><input class='txt' id='" + i + "text4'+ type='text' value=" + row + "" + 4 + " /><input id='Checkbox1' class='ck' name='ckb' type='checkbox' /> </td></tr>";
            $("#tab").append(tr);
        })
        //删除添加的行,先判断checkbox是否选中,然后删除
        $('#btnDelete').click(function () {
            $("input[name=ckb]:checked").each(function () { $(this).parent().parent().remove(); });
        })
        //将i遍历,判断是否存有值,如果有将数据插入数据库
        $('#btnData').click(function () {
            $('table input').each(function () {
                strValue += $(this).val() + ",";
            })
            $.ajax({
                type: 'post',
                contentType: 'application/json',
                url: "../WebService1.asmx/InsertInfo",
                data: "{valuesStr:'" + strValue + "'}",
                success: function (result) {
                    $('#mydiv').html(result.d);
                }
            })
        })
    })

     

    CSS文档
    table tr td{border:1px solid #eee;text-align:center;80px;}
    #divInsert{100%;height:25px;}
    #btnInsert{50px;height:25px;background-color:#eee;border-style:none;position:absolute;left:185px;}
    #btnData{50px;height:25px;background-color:#eee;border-style:none;position:absolute;left:235px;}
    #btnDelete{50px;height:25px;background-color:#eee;border-style:none;position:absolute;left:285px;}
    input{70px;}
    .txt{35px;float:left;position:relative;left:5px;}

    .ck{10px;float:right;}

    PersonInfo类文件

    namespace ASPOilfiled
    {
        public class PersonInfo
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public int Hblood { get; set; }
            public int Lblood { get; set; }
        }
    }

    WebService1.asmx 文件

        [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
            public static string sqlstr = ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString;
            [WebMethod]
            public string InsertInfo(string valuesStr)
            {
                string result = "插入失败!";
                string asd = valuesStr.Replace("on,", "");
                string[] str2 = System.Text.RegularExpressions.Regex.Split(asd, ",");
                //for (int i = 0; i < str2.Length; i++)
                //{
                //    result += str2[i] + "<br/>";
                //}
                for (int i = 0; i < str2.Length; i++)
                {
                    PersonInfo info;
                    if (i % 4 == 0)
                    {
                        info = new PersonInfo();
                        info.Name = str2[i];
                        info.Age = Convert.ToInt32(str2[i + 1]);
                        info.Hblood = Convert.ToInt32(str2[i + 2]);
                        info.Lblood = Convert.ToInt32(str2[i + 3]);
                        result = InfoToSql(info).ToString();
                    }
                }
                return result;
            }
            public int InfoToSql(PersonInfo info)
            {
                string instSql = "insert into PersonInfo values(@name,@age,@Hblood,@Lblood)";
                SqlConnection con = new SqlConnection(sqlstr);
                con.Open();
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandText = instSql;
                cmd.Parameters.Add("@name", SqlDbType.VarChar, 32).Value = info.Name;
                cmd.Parameters.Add("@age", SqlDbType.Int).Value = info.Age;
                cmd.Parameters.Add("@Hblood", SqlDbType.Int).Value = info.Hblood;
                cmd.Parameters.Add("@Lblood", SqlDbType.Int).Value = info.Lblood;
                int i = cmd.ExecuteNonQuery();
                cmd.Dispose();
                con.Dispose();
                return i;
            }
        }

  • 相关阅读:
    转载 设计模式大集锦 程序员面试全攻略
    转载 如何给项目选择最合适的编程语言?
    python–ntohll和htonll的实现(转载)
    python 动态加载模块和类
    转载 推荐9个非常有用的开发技巧给Web开发者
    python PyDev统一编码
    mysql 设置编码
    Python MySQLdb.connect连接lampp中mysql服务器问题的解决
    转载 Python编码时的注意事项
    转载 Web前端:11个让你代码整洁的原则
  • 原文地址:https://www.cnblogs.com/-Apple/p/3314309.html
Copyright © 2011-2022 走看看