2010-12-15 57 views
0

那麼,我的問題是有點奇怪,真的很奇怪的PHP與AJAX與JQuery的行爲

我有一個AJAX請求得到一個數字。

該號碼印在:getMoney.php。 在index.php我有AJAX請求。

Ajax代碼:

function getMoney(selected) 
     { 
      if(selected.value != -1) 
      { 
       // Obtener presupuesto via AJAX 
       $(document).ready(function(){ 
        $.ajax({ 
          url: "getMoney.php", 
          async: true, 
          success: function(datos){ 
           //My action 
          } 
        }); 
       }); 
      } 
     } 

當我改變一個組合框HTML

<select name="area_id" onchange="getMoney(this);"> 

嗯...我的問題的值的函數被調用: 如果我寫下來getMoney號碼.php(mannualy)它的作品非常完美,AJAX得到它並且動作完成了,但是當我從我的數據庫中得到數字時我只得到0.我也打開mannualy getMoney.php,並且數字在那裏!即使我從數據庫中獲得它。

怎麼了?

+0

所有這些embeeded在我的MVC,我簡化爲未知,但MVC工作正確,我不是一個奇怪的行爲AJAX – MDiaz 2010-12-15 13:55:11

+4

你可以發佈代碼getMoney.php? – JohnSmith 2010-12-15 13:55:41

+2

您向我們展示了錯誤的代碼部分。我們需要getMoney.php,如果你發誓輸出的數字是正確的,你的AJAX成功處理程序是什麼。 – Matt 2010-12-15 13:58:17

回答

2

確保getMoney.php不使用您的標準視圖標題,即腳本包括,樣式表包含或其他。另外,最好讓getMoney.php返回一個JSON字符串,並將數據參數化,這樣您就可以撤回診斷和錯誤代碼以及特定數據。這將有助於調試。如果你需要幫助,請看$.getJSON()

+0

Exelent!這對我有效! JSON是問題!非常感謝 – MDiaz 2010-12-15 14:04:13

0

XHR對象將緩存由URL請求的所有,你可以通過在追加一個隨機字符串,這樣解決這個問題:

$.ajax({ 
    url: "getMoney.php?r=" + new Date().getTime(), 
    async: true, 
    success: function(datos){ 
     //Your action 
    } 
}); 
+1

如果你設置'cache:false',jQuery會這樣做。 – jwueller 2010-12-15 14:13:20

0

在Firefox中安裝插件的螢火https://addons.mozilla.org/en-US/firefox/addon/1843/

一旦你安裝了插件,狀態欄右邊會出現一個錯誤符號。

點擊它。然後更改選擇框。在螢火蟲控制檯中會有一行。

在那裏您可以看到發送到服務器的所有數據和來自服務器的響應。這將幫助您確定問題。