我尝试使用全局变量并使用return子句,但是当离开AJAX函数时,变量保持为null。
http.onreadystatechange =
function() { if(http.readyState==4 && http.status==200) {
vQuantity = http.responseText;
alert(vQuantity);
}
}
警告消息(上面)显示了一个有效值,变量是全局的,但返回AJAX函数的值为null。你们都有什么想法吗? 谢谢伙计们,马科斯。
AJAX例程没问题,但我想使用一个在AJAX例程之外加载(至少应该是)的变量,变量为null。
我该怎么做?下面你们都可以看到我的代码:
<form><input type=hidden name="ElementoQuantidade"></form>
function updateinsertAJAX(CodPagina) {
var http;
if (window.XMLHttpRequest) {
http=new XMLHttpRequest();
}
else
{
http=new ActiveXObject("Microsoft.XMLHTTP");
}
var urlalvo = "updateinsertSQL.php";
var compl = "?codpagina=" + CodPagina + "&t=";
var randomize = parseInt(Math.random()*999999999999999);
var modurl = urlalvo + compl + randomize;
http.open("GET", modurl, true);
http.onreadystatechange =
function() { if(http.readyState==4 && http.status==200) {
var vqtde = http.responseText;
document.getElementById('ElementoQuantidade').innerHTML = vqtde;
}
else
{
document.getElementById('ElementoQuantidade').innerHTML = "a lot of";
}
}
http.send();
}
实际上,我想使用那个变量vqtde,但是当我在AJAX函数之外使用它时,该变量(vqtde)为null。在AJAX函数内部,变量(vqtde)具有有效值。
你可以指导我吗?非常感谢,祝您度过愉快的一天。 马科斯答案 0 :(得分:0)
var vqtde; // make it global
function updateinsertAJAX(CodPagina) {
var http;
if (window.XMLHttpRequest) { ........
AND
http.onreadystatechange =
function() { if(http.readyState==4 && http.status==200) {
vqtde = http.responseText; ....
答案 1 :(得分:0)
为什么不从函数中返回值?我会建议不要使用全局变量,除非它们是必要的,只是因为如果你的应用程序增长它们会在shuffle中丢失。
function yourFn(...) {
...do some stuff...
return yourVariable;
}