从PHP获取xhr的数据

时间:2012-03-15 16:26:55

标签: php javascript jquery ajax

我正在尝试从PHP文件中获取一些数据,这些数据在执行后只给出一个数字:

<?php
    include '../assets/class/login/loginsys.php';
    $extension = new extension;     
    $count = $extension->userCount();
    echo $count;        
?>

所以$count变量只是一个数字。我正在尝试检索该数字并将其放入js变量中以供进一步使用(我需要它几次,如果只有一次我会使用$.get()并将其应用到我需要的容器中) :

var oXHR = new XMLHttpRequest();  
oXHR.open("GET", "admin/user-count.php", true);  
oXHR.onreadystatechange = function (oEvent) {  
    if (oXHR.readyState === 4) {  
        if (oXHR.status === 200) {  
            console.log(oXHR.responseText)  
        } else {  
        console.log("Error", oXHR.statusText);  
        }  
    }  
}; 
oXHR.send();

我尝试过上述方法但收效甚微,但我也尝试过这样:

var users = $.get('admin/user-count.php', function(data) {
    console.log('There are '+data+' users found');
    return data;
});

同样的结果,没什么。那么我做错了什么或者我该怎么做呢?

编辑我犯了一个错误,我现在修复了,第一种方法和第二种方法一样有效。但现在我需要将第一个方法得到的数据存储到一个变量中,以便以后可以使用它。我该怎么做以及两种方法中的哪一种更好?

1 个答案:

答案 0 :(得分:2)

如果你已经包含了jQuery,我会使用第二个代码:

$.get('admin/user-count.php', function(data)
{
  // Don't use "var" here, otherwise the variable won't be global!
  myGlobalVar = parseInt(data, 10);
  // Also possible: window["myGlobalVar"] = parseInt(data, 10);
});

如果您想使用纯JavaScript:

var oXHR = new XMLHttpRequest();  
oXHR.open("GET", "admin/user-count.php", true);  
oXHR.onload = function(evt)
{
  myGlobalVar = parseInt(oXHR.responseText,10);
}
oXHR.onerror = function(evt)
{
  alert("Error!");
}
oXHR.send();