2013-11-25 70 views
3

只是我想從兩個php頁面使用jquery加載數據。我把下面的代碼放在一起,但只有一個不能同時工作。有任何想法嗎?來自一個頁面的兩個ajax請求

$(document).ready(function() { 
     loadData(); 
    }); 

    var loadData = function() { 
     $.ajax({  
      type: "GET", 
      url: "second.php",    
      dataType: "html",     
      success: function(response){      
       $(".hm_m_un").html(response); 
       setTimeout(loadData, 1000); 
      } 

     }); 
    }; 
    $(document).ready(function() { 
     loadData(); 
    }); 

    var loadData = function() { 
     $.ajax({  
      type: "GET", 
      url: "test.php",    
      dataType: "html",     
      success: function(response){      
       $(".rx").html(response); 
       setTimeout(loadData, 1000); 
      } 

     }); 
    }; 

回答

2

你已經命名它們都是一樣的。嘗試一些合併

$(document).ready(function() { 
    window.setInterval(function() { loadData('second.php', $('.hm_m_un')); }, 1000); 
    window.setInterval(function() { loadData('test.php', $(".rx")); }, 1000); 
}); 

var loadData = function(page, ele) { 
    $.ajax({  
     type: "GET", 
     url: page,    
     dataType: "html",     
     success: function(response){      
      ele.html(response); 
     } 

    }); 
}; 
+0

我需要在不同的地方顯示結果,這就是爲什麼我有兩個類。 – user3006683

+0

我明白,但通過在你的函數中傳遞'jQuery'對象,你不需要重複你的代碼。你現在只需要一個功能。 – Machavity

+0

我試過你的代碼,但它不起作用。 – user3006683

3

您正在覆蓋第一個loadData變量。給它一個不同的名字,你會沒事的。

作爲說明,您不需要調用$(document).ready()兩次,您可以在技術上稱它爲一次。我會寫這樣的東西,如:

function descriptiveFunctionName() { 
    $.ajax({  
     type: "GET", 
     url: "second.php",    
     dataType: "html",     
     success: function(response){      
      $(".hm_m_un").html(response); 
      setTimeout(loadData, 1000); 
     } 
    }); 
} 

function anotherDescriptiveFunctionName() { 
    $.ajax({  
     type: "GET", 
     url: "test.php",    
     dataType: "html",     
     success: function(response){      
      $(".rx").html(response); 
      setTimeout(loadData, 1000); 
     } 
    }); 
} 

$(document).ready(function() { 
    descriptiveFunctionName(); 
    anotherDescriptiveFunctionName(); 
}); 

請注意,雖然這是一個非常懶惰的答案,用戶Machavity的代碼更重用更好,雖然你可能想只用發送到loadData更多回調未來的靈活性。

+0

感謝這一個也工作,但正如你所建議我使用Machavity的代碼。 – user3006683

1

非常簡單....您聲明變量loadData並將其分配給一個函數。

然後,您使用相同的變量分配給另一個函數,從而消除第一個實例。使用不同的變量名稱

相關問題