2015-04-20 7 views
0

Я использую следующий код для рекурсивного вызова через ajax.Рекурсивный вызов через ajax

function ajax_pay(i) 
{ 
    var opt=document.getElementById("fpayee").options; 
     payid=opt[i].value; 
     alert(i); 
     if(payid==""){return;} 

    alert(payid); 
    if (window.XMLHttpRequest) { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } 
     else { 
      // code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 


     document.getElementById("hint").innerHTML=i; 
     i++; 
     ajax_pay(i); 


      } 
     } 
     xmlhttp.open("GET","closeup.php?pid="+payid,true); 
     xmlhttp.send(); 

} 

здесь fpayee это выпадающий и я инициализация рекурсии через ajax_pay (0);

Но проблема в том, что он работает только один раз. , пожалуйста, помогите;

+0

Появляются ли ошибки? Попробуйте отлаживать и проверять значение i, которое вы отправляете или проверяете на вкладке сети, является ответом, даже приходящим на следующий вызов для выполнения – Fyre

+0

нет .. просто ничего –

+2

Смотрите объявления переменных. 'xmlhttp' и' payid' объявляются в глобальной области. Вызов этой функции рекурсивно перезапишет эти значения и смущает код. –

ответ

0

i Got it. Я называл это неправильно. Это способ записи

<button type="button" onclick="ajax_pay(0)">