WEB页面的数据交互

做WEB开发经常遇到的问题时前台后台的数据交互问题,这里简单介绍一下Ajax的用法。除此之外还有get,post的表单提交传值等方式,这里简单的介绍一下他们的用法。

  • get方式
  • post方式
  • Ajax方式

1. get方式

前台代码:

<form method="get">
    <p>First Name: <input type="text"name="fname" /></p>    
    <p>Last Name: <input type="text" name="lname" /></p>
    <input type="submit" value="Submit" />
</form>

后台代码:

protected void Page_Load(object sender, EventArgs e){
    string ffname = Request["fname"];
    string llname = Request["lname"];
}

2. post方式
同理,post方法类似,前台代码:

<form method="post">
    <p>First Name: <input type="text"name="fname" /></p>    
    <p>Last Name: <input type="text" name="lname" /></p>
    <input type="submit" value="Submit" />
</form>

后台代码:

protected void Page_Load(object sender, EventArgs e){
    string ffname = Request["fname"];
    string llname = Request["lname"];
}

3. Ajax方式
函数形式:

function myAjax(data, url, successFun, errorFun) {
    var o = {
        data: data,
    };
    $.ajax({
        data: JSON.stringify(o),
        type: "Post",
        url: url,
        contentType: "application/json; charset=utf-8",
        success: successFun,
        error: errorFun,
    })
}

这里,myAjax函数里面的四个传入值分别是
data:要传的数据
url:要传的路径,具体到函数,一般用相对路径
successFun:传值成功的回调函数
errorFun:传值失败的回调函数

调用时,具体代码实例:

var url = "../BasestartPage.aspx/postToFrontend";
        myAjax("test", url, function (data) {
            var answer = JSON.parse(data.d);
        }, function () {
            alert("error");
        });

其中,postToFrontend是具体的后台函数,用来接收客户端传来的数据,传给服务端的是一个字符串,可以看出,我是以json序列化的方式传给服务端。

后台的函数:

[WebMethod]
public static string postToFrontend(string data)
{
    return new JavaScriptSerializer().Serialize(data);
}

服务端传来的值也是经过序列化的,所以前台有个JSON.parse来反序列化得到相应的对象。

注意事项:

  • myAjax函数传的对象里面的属性值是什么,后台代码接收的参数也必须以一一对应。
  • 后台的接收函数必须有[WebMethod]标签。
  • 序列化是一个很好的数据预处理方式。
  • Ajax是异步传值的。

以上所讲都是前台后台之间的数据交互,如果页面之间存在交互时改怎么办呢?

前台js示例代码:

window.open("../statisticsPage/statisticsPage.aspx?voteid=" + id);

这里传了一个voteid的值。打开另一个网页时,网页的URL后面会有 ”?voteid=** “的显示,说明这里用的是get方法传给另一个页面的,这时候,我们既可以在另一个页面的后台用上面所说的get接收方法来接收,也可以用下面的方法来接收数据。

另一个界面的js代码:

//获取URL中参数param的值
function getParameter(val) {
    var uri = window.location.search;
    var re = new RegExp("" + val + "\=([^\&\?]*)", "ig");
    return ((uri.match(re)) ? (uri.match(re)[0].substr(val.length + 1)) : null);
}

getParameter(voteid)//这里就是voteid的值

这里用的是一个正则表达式来匹配URL里面的?后面的变量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值