如何在ajax代码中访问javascript变量值

3

我将尝试从这段代码中访问javascript变量的值并传递到ajax代码中。

我尝试像这样访问,但它不起作用-

javascript代码

<script type="text/javascript">

function getResults() 
{
    var radios = document.getElementsByName("address");    
    for (var i = 0; i < radios.length; i++) 
    {       
        if (radios[i].checked) 
        {
       var a = radios[i].value
            break;
        }
    }
}


function remove(a) 
{
     alert(a);
     if(a=="") 
     {
         document.getElementById("txtHint").innerHTML="";
         return;
     }

     if(window.XMLHttpRequest) 
     {
         xmlhttp=new XMLHttpRequest();
     } 
     else 
     {
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
     xmlhttp.onreadystatechange = function() 
     {
         if(xmlhttp.readyState==4 && xmlhttp.status==200) 
         {
              document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
         }
     }
     xmlhttp.open("GET","theaterdel.php?q="+a,true);
     xmlhttp.send();
}

</script>

在这段代码中,我试图从getResults()函数中访问变量a的值,并像这样使用remove()

remove(a)
{}

但是它没有起作用,当我在remove(a){}中弹出a的值时,它会打印undefined

5个回答

4
全局定义变量-
var a= "hi";

function getResults(){ ... }

function remove() { alert(a); ... }

4

试一试

function getResults() 
{
    var radios = document.getElementsByName("address");    
    for (var i = 0; i < radios.length; i++) 
    {       
        if (radios[i].checked) 
        {
            var a = radios[i].value
            remove(a);
            break;
        }
    }
}

在函数内部调用另一个函数。

希望这可以帮到您。


3
您已经将变量"a"声明为getresults函数的局部变量。将变量"a"声明为全局变量,不要使用var关键字。
if (radios[i].checked) 
    {
     a = radios[i].value
        break;
    }

你有两个不同的函数,想在另一个函数中获取其中一个变量,需要将它声明为全局变量。

2

你需要在函数外部声明变量,就像这样:

var a = null
function getResults()

当您在函数外声明时,您可以从任何地方访问变量

此外,查看jQuery .ajax()以获取更简单的关于AJAX的代码


2

你使用 'var' 关键字在 getResults() 函数内部定义了 a。这意味着它只能在该函数内部使用。

如果你想在另一个函数中使用该变量,你需要在调用另一个函数时将其传递过去 - 下面是一个简单的例子:

function myFunction() {
 var a = "this is a";
 secondFunction(a);
}

function secondFunction(a) {
 alert(a);
}

另一种方法是声明变量具有全局范围 - 但除非您确信它不会与页面上可能存在的任何其他全局变量冲突,否则这不是一个好主意。

除非您绝对需要全局变量,否则最好限制作用域。这将使您的代码更整洁,调试更容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接