2013-08-21 3 views
3

Я пытаюсь получить доступ к яваскрипта значение переменной из этого кода в Ajax кодКак получить доступ к яваскрипта значение переменной в коде 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 «S от getResults() функции remove() как это

remove(a) 
{} 

Но это не работает, когда я предупредит значение a «S внутри remove(a){}, он печатает undefined

ответ

4

Глобально определить переменную -

var a= "hi"; 

function getResults(){ ... } 

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

вам нужно объявить переменную вне функция, подобная

var a = null 
function getResults() 

w курица вы объявляете его вне функции вы можете получить доступ к переменной из любого места вы хотите

также заглянуть в JQuery .ajax() для более простого кода относительно AJAX

2

Вы определили в внутри getResults() используя ключевое слово '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; 
     } 
    } 
} 

вызов функции внутри

надеюсь, что это поможет.

Смежные вопросы