php - Javascript - 从其他地方调用的函数返回一个值

标签 php javascript ajax function

这个问题的标题不是很清楚,但如果不提供一些代码,我无法解释我要问的内容。

我正在制作一个使用 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/

相关文章:

javascript - json响应,读取数据

javascript - 如何将 View 中的多个值导入到模板中的多个按钮中?

php - Facebook Jquery ajax 权限请求?

javascript - 添加下拉值的新输入字段

php - 使用 Symfony Autowiring 扩展类的正确方法

javascript - 为什么 typescript 会在类型联合上给出类型错误?

javascript - 在单元测试期间检查指令中是否存在 html 元素

php - 我正在尝试以表格格式显示来自 sql 数据库的信息,我做错了什么?

php - 使用ajax刷新div

javascript - 使用 post 的 Ajax 请求