type: "get"
是不是应该改成post。get貌似只能用来获取数据的,你如果是需要后台修改数据的话你这里使用的是异步提交的,再你return flag的时候,服务器还没有返回数据呢,就算是能成功修改,你的flag在这个函数的返回值也会是false,没有什么意义吧。
是不是应该改成post。get貌似只能用来获取数据的,你如果是需要后台修改数据的话你这里使用的是异步提交的,再你return flag的时候,服务器还没有返回数据呢,就算是能成功修改,你的flag在这个函数的返回值也会是false,没有什么意义吧。
如果ajax返回的数据是html代码,可以用正则表达式匹配其中的<span></span>标签;
或者用转成jquery对象再用选择器查找:$('ajax返回的html字符串').find('span').html()问题二:
改成同步提交(async: false),就可以让函数在得到查询结果后才返回了。
但是如果查询耗时较长,同步提交会导致浏览器无响应,如果必须用异步提交,可以改变一下函数的使用方式,通过传一个回调函数来实现异步返回结果,例如://修改钱
function update_pay_money(user_id_updatemoney,kouqian,getFlag) {
var flag=false;//修改成功标志
$.ajax({
type: "get",
url: "../DB.ashx",
data: { "userid_pay": user_id_updatemoney, "money_pay": kouqian, "classid": "update_money" },
datatype: "text",
success: function (data_money) {
if (data_money == "yes")
flag = true;
getFlag(flag);
},
error: function () {
alert("error");
getFlag(flag);
}
});
}
修改之前,调用此函数的方式是://当使用异步提交时,无法获取正确的flag
var flag = update_pay_money('xxx', 'xxx');
alert(flag);
修改之后,调用此函数的方式是://异步提交时可以得到正确的flag
update_pay_money('xxx', 'xxx', function (flag) {
alert(flag);
});