2013-08-21 35 views
3

我想從這個代碼訪問JavaScript變量值的Ajax代碼如何訪問Ajax代碼JavaScript變量值

我試圖訪問這樣的,但它並不working-

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()函數訪問的變量aremove()這樣

remove(a) 
{} 

但它不工作,當我提醒裏面remove(a){}a值,則打印undefined

回答

4

全局定義變量 -

var a= "hi"; 

function getResults(){ ... } 

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

需要之外聲明變量功能如

var a = null 
function getResults() 

w聲明它的功能外母雞,你可以從任何地方訪問變量你想

也,看看jQuery的阿賈克斯()用於

2

您已經定義一個的getResults內簡單的代碼就AJAX()函數使用'var'關鍵字。這意味着它只會在該功能的範圍內。

如果你想使用該變量在其他功能,你需要在調用其他功能跨越通過它 - 簡單的例子是以下:

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

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

另一種方法是聲明變量等等它有全球範圍 - 但這不是一個好主意,除非您確信它不會與您網頁上可能存在的任何其他全局變量相沖突。

除非您絕對需要全局變量,否則您最好限制範圍。它會讓你的代碼更簡潔,並且調試更容易。

3

您已將變量「a」聲明爲getresults函數的本地變量。聲明變量「a」爲全局變量,不要使用var關鍵字。

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

您有兩個不同的函數,並且在另一個函數中獲取變量,在全局聲明它。

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

調用內部

函數希望這將有助於。