这个问题的标题不是很清楚,但如果不提供一些代码,我无法解释我要问的内容。
我正在制作一个使用 AJAX 提交报告(数组)的页面。我有存储在库中的函数,这些函数将数组提交到 PHP 页面,如下所示:
function saveReport(params)
{
var url="reports/save.php";
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
return false;
}
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("POST",url,true);
//Send the proper header information along with the request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(params);
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
if (xmlHttp.responseText == 'complete')
{
return true;
}
else
{
return false;
}
}
}
(我不认为 GetXmlHttpObject() 函数与该问题相关)
我希望能够像这样从我的页面调用 saveReport()
success = saveReport(params);
if (success == true)
{
alert('success');
}
else
{
alert('failure');
}
因此,函数 saveReport() 需要返回一个值,该值是调用函数 stateChanged() 时返回的值,以便调用 saveReport() 的页面可以决定要做什么 - 这在不同的情况下可能有所不同页。有什么办法可以做到这一点吗?
我意识到这可能是不可能的,但我可以做些什么来达到同样的效果。
最佳答案
您推出自己的 Ajax 助手有什么原因吗?
在这种情况下,您将需要在服务器响应时触发回调函数,以便您可以对响应执行某些操作,无论是成功还是失败。
显然,您可以使用类似 jQuery.ajax 的内容但对于这么简单的事情来说这可能有点过分了。
您可以尝试 http://microjs.com/#ajax 中的众多微型 Ajax 库之一。实现您所追求的目标。
关于php - Javascript - 从其他地方调用的函数返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399657/