比如说我有一个简易的信息填写的前端如图
现在想用ajax对后台进行传值,并且根据后台的返回值的情况显示不同的信息。例如
function checkselect(){
$.ajax({
type:'post',
url:'UploadImageServlet',
data:{username:Username,password:Password......},
async:false,
datatype:'json',
???????
后台将接受到的值传入数据库,这部分没问题,假设前端根据后台返回的值要显示“修改成功”或者“账号和原密码不匹配,请重新输入”,前端问号处应该怎么写?后台的返回值应该怎么写?
//Ajax调用处理
$.ajax({
type: "POST",
url: "test.php",
data: "name=garfield&age=18",
success: function(data){
$("#myDiv").html('<h2>'+data+'</h2>');
}
});
success 部分就是调用回调函数,data就是返回值。返回值可以解析多种格式,比如json、字符串 。服务端返回值格式根据需求自己定义
比如定义成 json格式 :
{
"status" : 0 , //执行状态码 0失败 1成功
"msg" : "SUCCESS", //说明文字信息 如:用户名不存在
"data" :[{ //对象中嵌套数组,数组是返回的数据, 返回用户 id 姓名
"id" : 1 ,
"name" : "xiaohong"
}
ajax可以配置:dataType 属性
类型:String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串
写个成功的回调函数就行了啊
function checkselect(){
$.ajax({
type:'post',
url:'UploadImageServlet',
data:{username:Username,password:Password......},
async:false,
datatype:'json',
success:function(result){
var obj = eval('(' + result + ')');
alert( obj);
}
问号处:
success:function(data) {
if(data==1){
alert('修改成功'});
}else if(data == 0){
alert('修改失败');
}else{
alert('未知错误');
}
}
后台返回值:后台返回值用Integer
function checkselect(){
$.ajax({
type:'post',
url:'UploadImageServlet',
data:{username:Username,password:Password......},
async:false,
datatype:'json',
success:function(result){
var obj = eval('(' + result + ')');
alert( obj);
}
$.ajax({
type: "POST",
url: "test.php",
data: "name=garfield&age=18",
success: function(data){
判断后台传回的data里面携带的判断值,如果成功就显示成功,失败就显示失败
}
});
写个回调函数,获取标签对象,对该对象中的内容进行修改就行了