我想写一个javascript函数,它会向PHP脚本发出一个ajax请求并返回它的结果。这就是它的样子:
function myjsfunc(some_data)
{
$.post(
"/myscript.php",
{ some_data: some_data },
function(response)
{
result = response;
}
);
return result;
}
问题是,result
始终未定义。这可能是因为变量result
不在myjsfunc
名称空间中?或者是因为在处理主函数后接收到成功函数结果?
无论如何,我怎样才能获得理想的结果?有办法吗?
答案 0 :(得分:5)
您无法返回结果,因为它不是由外部函数完成时定义的。您的AJAX调用是异步发生的,并且在POST发生后调用回调函数。要处理结果,您需要执行以下操作:
function myjsfunc(some_data) {
$.post("/myscript.php", { some_data: some_data }, function(response) {
if (some_data.prop) {
myReturnHandler(response);
} else {
myOtherHandler(response);
}
}
);
}
您将单独定义myReturnHandler,并且需要知道如何使用结果数据接管处理。
- 已编辑 -
您还可以执行测试以确定如何处理您的响应。添加了额外的代码来演示。