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

时间:2013-08-21 10:51:06

标签: javascript php jquery html ajax

我正在尝试从此代码访问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>

在此代码中,我尝试将a函数中的变量getResults()的值设置为remove(),如下所示

remove(a)
{}

但它不起作用,当我在a内警告remove(a){}的值时,它正在打印undefined

5 个答案:

答案 0 :(得分:4)

全局定义变量 -

var a= "hi";

function getResults(){ ... }

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

答案 1 :(得分: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;
        }
    }
}

调用

中的函数 希望它会有所帮助。

答案 2 :(得分:3)

您已将变量“a”声明为getresults函数的本地变量。将变量“a”声明为全局变量,不要使用var关键字。

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

你有两个不同的函数,并在另一个函数中获取一个函数的变量,全局声明它。

答案 3 :(得分:2)

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

var a = null
function getResults()

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

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

答案 4 :(得分:2)

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

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

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

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

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

除非绝对需要全局变量,否则最好限制范围。它会使你的代码更整洁,调试也更容易。