您的位置:首页 > Web前端 > JQuery

jQuery $.post $.ajax用法

2009-04-10 09:31 417 查看
jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求


参数:

url (String) : 发送请求的URL地址.

data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。

callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)


这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

Ajax.aspx:

Response.ContentType = "application/json";Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}");
jQuery 代码:
$.post("Ajax.aspx", { Action: "post", Name: "lulu" },
function (data, textStatus){
// data 可以是 xmlDoc, jsonObj, html, text, 等等.
//this;
// 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this
alert(data.result);        }, "json");

点击提交:

这里设置了请求的格式为"json":

$.ajax()这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。

这里有几个Ajax事件参数:beforeSend success complete ,error 。我们可以定义这些事件来很好的处理我们的每一次的Ajax请求。

$.ajax({
url: 'stat.php',

type: 'POST',

data:{Name:"keyun"},

dataType: 'html',

timeout: 1000,

error: function(){alert('Error loading PHP document');},

success: function(result){alert(result);}

});

//add by Q at 2008.11.25

今天遇到一个jquery的post的小问题

因为要批量删除,所以开始用循环的post到那个url,然后刷新本页

这就出现问题了

$("input[@name='qa_checkbox']").each(function()
{
if($(this).attr('checked') == undefined)
{

}
else
{
$.post(url,{Action:"POST"},function(data){alert(data);window.location.reload();}, "text");

}
})

这么用的话 只能删除第一条数据;

$("input[@name='qa_checkbox']").each(function()
{
if($(this).attr('checked') == undefined)
{

}
else
{
$.post(url+$(this).val(),{Action:"POST"},function(data){alert(data);}, "text");

}
})

window.location.reload();

这样用的话,虽然可以删除,也能刷新本页,貌似reload是在post的function之前运行,但是post会报错,其中原因有待研究;

最终想了折中的办法

$("input[@name='qa_checkbox']").each(function()
{
if($(this).attr('checked') == undefined)
{

}
else
{
url = url + $(this).val() + '_';

}
})
$.post(url,{Action:"POST"},function(data){alert(data);window.location.reload();}, "text");
}

把要删除的id连成字符串,用一次post处理,把reload放在post的function里 就没有问题了

发表于 @ 2008年04月28日 15:34:00|评论(3 AddFeedbackCountStack("2339238"))|编辑|收藏

新一篇: 如何让ie6 ie7 并存 | 旧一篇: div +css 小记

var CurrentEntryId = '2339238';
var CurrentUserName = 'keyunq';

HH 发表于2008年5月3日 00:04:10 IP: { firstName: "Brett", lastName:"McLaughlin", email: "brett@newInstance.com" }

如何读取? 文章链接:http://blog.csdn.net/keyunq/archive/2008/04/28/2339238.aspx 发表时间:2008年5月3日 00:04:10">举报

如果服务器端传过去这样一个json
{ "people":
{ firstName: "Brett", lastName:"McLaughlin", email: "brett@newInstance.com" }

如何读取?

HH 发表于2008年5月3日 00:06:09 IP:举报
说错了,是js端

keyunq 发表于2008年5月4日 16:54:43 IP:举报
php里有这两个json的函数
json_decode
json_encode
很方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: