我想要做的是JS中的以下内容:
function getSuccessForTest(testName,version,fromRev,toRev,res) {
var params = {
"methodToRun":"getSuccessForTest",
"version":version,
"startRev":fromRev,
"endRev":toRev,
"testName":testName
};
$.post("Stats.php", params,function(data){
return parseInt(data.toString(),10);
}, "json");
}
getSuccessForTest(data[i],version,fromRev,toRev,res);
我做错了什么?每当我调用getSuccessForTest时,我都会在Stats.php中获得POST结果,但该值不会返回给调用函数。
提前致谢!
答案 0 :(得分:3)
它不起作用,因为返回是在$ .post作为参数的回调函数中。由于您正在处理异步的ajax请求,因此您还需要对getSuccessForTest使用回调。试试这个:
function getSuccessForTest(testName,version,fromRev,toRev,res, callback) {
var params = {
"methodToRun":"getSuccessForTest",
"version":version,
"startRev":fromRev,
"endRev":toRev,
"testName":testName
};
$.post("Stats.php", params,function(data){
callback(parseInt(data.toString(),10));
//return parseInt(data.toString(),10);
}, "json");
}
getSuccessForTest(data[i],version,fromRev,toRev,res, function (data) {
alert(data); // This would be the value you wanted to return
});
答案 1 :(得分:1)
将beacuse值返回给匿名函数(function(data){...)。使用回调。试试这个:
function getSuccessForTest(testName,version,fromRev,toRev,res, callback) {
var params = {
"methodToRun":"getSuccessForTest",
"version":version,
"startRev":fromRev,
"endRev":toRev,
"testName":testName
};
$.post("Stats.php", params,function(data){
callback(parseInt(data.toString(),10));
}, "json");
}
getSuccessForTest(data[i],version,fromRev,toRev,res, function(res) {
alert(res)
} );
答案 2 :(得分:0)
echo
。如果这不能解决你的问题,那么我想知道你用于ajax调用处理脚本的返回方法是什么。
答案 3 :(得分:0)
return parseInt(data.toString(),10);
你不能那样回来。 要么分配一些全局变量,要么使用数据进行处理