C# ajax JQuery 将数据写入到数据库中

C# ajax JQuery 将数据写入到数据库中,第1张

//页面

                $.ajax({

                    type: "POST",

                    url: "路径/xxxx.ashx",

                    async: false,

                    data: {

                        //由于你需要传递很多数据到后台,这里我才用了序列化表单的方式;你也可以自定义一个js类,然后把数据填充,然后转换成json格式的字符串,传递到后台。

                        data: $("form").serialize() 

                    },

                    complete: function (XHR, status) {

                        XHR = null

                    },

                    success: function (data) {

                        data = $.parseJSON(data)

                        if (data.success == true) {

                            alert("成功")

                        }

                        else{

                            alert("失败")

                        }

                    },

                    error: function (XHR) {

                        alert(XHR)

                    }

                })

然后你需要创建一个“一般处理程序”,里面的代码大致如下:

    public void ProcessRequest(HttpContext context)

    {

        context.Response.ContentType = "text/plain"

        //result中就是传递过来的所有数据

        string result = context.Request.Form

        //数据库 *** 作

        context.Response.Write("{success:true}")

    }

大致就是如此了。一个ajax请求并没有多么复杂。

//click

那里修改

click:

function(score,

evt)

{

//console.log('ID:

'

+

$('#function-demo1').data('id')

+

"\nscore:

"

+

score

+

"\nevent:

"

+

evt)

$.post(URL,{文章ID

:

$('#function-demo1').data('id')

,

分值:

score

},function(data){

//提交URL的返回值:

data

})

}

$('#function-demo1')

这个东西加个

data-id

属性

这个方法网上可以查到很多,但是好多只有点击文字编辑并保持,但是没有完整的代码写怎么保存到数据库。因为本人才疏学浅,费啦好长时间才写好把修改的内容只用一条sql语句保存到数据库,今天在这里和大家分享

这是运行图片

这是前台页面

03.aspx页面

复制代码

代码如下:

<table

id="MyTable"

cellspacing="1"

cellpadding="3">

<asp:Repeater

ID="reorderInFo"

runat="server">

<ItemTemplate>

<tr

style="text-align:

left">

<td

width="70"

height="40"

id="OrderName">

订单名称:

</td>

<td

colspan="5"

class="caname"

id="OrderName1">

<%#Eval("OrderName")%>

</td>

</tr>

<tr

style="text-align:

left">

<td

width="70"

height="40"

id="ID_Product">

产品类型:

</td>

<td

class="caname"

id="ID_Product1">

<%#Eval("ID_Product")%>

</td>

<td

width="40"

id="OrderState_Send">

状态:

</td>

<td

class="caname"

id="OrderState_Send1"

><%#Eval("OrderState_Send")%>

</td>

<td

width="40"

id="OrderQty">

印量:

</td>

<td

class="caname"

id="OrderQty1"

><%#Eval("OrderQty")%>

</td>

</tr>

<tr>

<td

width="70"

height="60"

id="SendAddress">

收货信息:

</td>

<td

colspan="5"

class="caname"

id="SendAddress1"

><%#Eval("SendAddress")%>

</td>

</tr>

<tr

style="text-align:

left">

<td

width="70"

height="50"

id="OrderMoney_Total">

总金额:

</td>

<td

colspan="5"

class="caname"

id="OrderMoney_Total1"

><%#Eval("OrderMoney_Total")%>

</td>

</tr>

</ItemTemplate>

</asp:Repeater>

</table>

这是js

03.js

复制代码

代码如下:

$(function

()

{

//获取class为caname的元素

$(".caname").click(function

()

{

var

td

=

$(this)

var

txt

=

$.trim(td.text())

var

input

=

$("<input

type='text'value='"

+

txt

+

"'/>")

td.html(input)

input.click(function

()

{

return

false

})

//获取焦点

input.trigger("focus")

//文本框失去焦点后提交内容,重新变为文本

input.blur(function

()

{

var

newtxt

=

$(this).val()

//判断文本有没有修改

if

(newtxt

!=

txt)

{

td.html(newtxt)

//不需要使用数据库的这段可以不需要

//var

Order_Id

=

$("#ID_Order").text()

var

updateCol

=

$.trim(td.prev().attr("id"))//我重点要说的是着一句:td.prev()表示本td的上一个td。这句代码的意思是你所点击的td的上一个td的id(如果不明白可以看前面的03.aspx页面)。

//ajax异步更改数据库,加参数date是解决缓存问题

url

=

"../test/03.ashx?caname="

+

newtxt

+

"&updateCol="

+

updateCol

+

"&date="

+

new

Date()

//使用get()方法打开一个一般处理程序,data接受返回的参数(在一般处理程序中返回参数的方法

context.Response.Write("要返回的参数"))

//数据库的修改就在一般处理程序中完成

$.get(url,

function

(data)

{

//

if

(data

==

"1")

{

//

alert("该类别已存在!")

//

td.html(txt)

//

return

//

}

//

alert(data)

alert("修改成功")

td.html(newtxt)

})

复制代码

代码如下:

<p><span

style="font-size:14px">这是一般处理程序页面<span

style="font-family:Times

New

Roman">

03.ashx</span></span></p><p>

<%@

WebHandler

Language="C#"

Class="_03"

%></p>

复制代码

代码如下:

<p>using

System

using

System.Web

using

System.Data.SqlClient</p><p>public

class

_03

:

IHttpHandler

{

public

void

ProcessRequest

(HttpContext

context)

{

context.Response.ContentType

=

"text/plain"

int

OrderId

=

5</p><p>

string

newOrderName

=

context.Request.QueryString["caname"]//获取用户修改后的文字

string

updateCol

=

context.Request.QueryString["updateCol"]//获取用户修改的本td的上一个td的id的值(这个id与数据库中的列名相同)

string

sql

=

"update

eoPrintOrder

set

"

+

updateCol

+

"

<a

target="_blank"

href="mailto:=@name">=@name</a>

where

<a

target="_blank"

href="mailto:Id_order=@id'//">Id_order=@id"//</a>通过这一条sql语句,就可以对数据库进行修改

SqlParameter[]

pams

=

{

new

SqlParameter("@name",newOrderName),

new

SqlParameter("@id",OrderId)

}

string

data

=

DscySFL.DbHelp.ExecuteCommand(sql,pams

).ToString()

context.Response.Write(data)

}

public

bool

IsReusable

{

get

{

return

false

}

}</p><p>}</p>


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存