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


How to access javascript variable value in ajax code

我正在尝试访问此代码到ajax代码的javascript变量值

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

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>

在这段代码中,我试图访问变量a的值,从getResults()函数到remove(),就像这个一样

remove(a)
{}

但它不起作用,当我在remove(a){}中提醒a的值时,它正在打印undefined

全局定义变量-

var a= "hi";
function getResults(){ ... }
function remove() { alert(a); ... }

尝试这个

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;
        }
    }
}

调用内部的函数

希望它能有所帮助。

您已经将变量"a"声明为getresults函数的局部变量。将变量"a"声明为全局变量,不要使用var关键字。

if (radios[i].checked) 
    {
     a = radios[i].value
        break;
    }

您有两个不同的函数,要在另一个函数中获得其中一个函数的变量,请全局声明它。

您需要在函数外声明变量,如

var a = null
function getResults()

当你在函数外声明它时,你可以从任何你想要的访问变量

另外,请查看jQuery.ajax(),以获取有关ajax 的更简单代码

您已经在getResults()函数中使用'var'关键字定义了一个。这意味着它将只在该函数的范围内。

如果你想在另一个函数中使用这个变量,你需要在调用另一个功能时传递它——简单的例子如下:

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

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

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