2012-01-22 73 views
0

即時通訊設法做一個ajax端口到一個php文件,它似乎是不想發送的數據。如何使用ajax post將數據發送到手機中的php文件?

我有一個Android項目使用電話的差距庫,它看起來像如果我去一個得到它的工作原理:

$(document).ready(function() { 

      $.ajax({ 
       type: 'GET', 
       url: 'http://example.com/functions.php', 
       data: { get_param: 'login' }, 
       dataType:'json', 
       success: function (data) { 
        alert('success'); 
        }); 
       }, 
       error: function() { 
        console.log(XMLHttpRequest.errorThrown); 
       } 

      }); 
     }); 

所以,這個工作正常。但是,當我嘗試後大部頭的數據它沒有:

var vals = $("#form").serialize(); 

        $.ajax({ 
         type: 'POST', 
         url: 'http://example.com/functions.php', 
         data: vals, 
         dataType:'json', 
         success: function (data) { 
          alert('success'); 
          $.mobile.changePage("test.html", { transition: "slideup"}); 
         }, 
         error: function() { 
          alert('fail'); 
         } 

        }); 

這個前面的例子中,我得到了fail alert

我也試着:

$.post("http://example.com/functions.php", vals , 
     function(data){ //Your onsuccess call backfunction 
      alert(data); 
     }, "json" //retun data type //can be html/json/xml/text 
     ); 
     e.preventDefault(); 

但失敗也。

關於爲什麼get的作品,但不是帖子的任何想法?現在我沒有任何從PHP函數返回,但我應該至少得到success警報。

很多感謝的

編輯:PHP代碼我有由AJAX發送的vals檢查。其中之一是name

if (isset($_POST['name'])) { 
    return "name"; 
} 
+0

可以顯示您的一點PHP代碼 – Rafay

+0

我更新了我的代碼 – Patrioticcow

回答

0

您的客戶端代碼看起來不錯。 $.ajax$.post調用都應成功將表單值提交給服務器端腳本。從那裏開始,就是執行這個腳本,它可能會引發錯誤。我建議你使用JavaScript調試工具,例如FireFox中的FireBug或Google Chrome中的Chrome開發人員工具欄,它允許您監控AJAX請求。您可以看到發送的實際請求以及服務器的響應。您可以看到服務器返回的HTTP狀態代碼以及精確的響應。所以如果這個狀態碼不是200(這是你的情況),error回調將在客戶端執行。所以去調試並修復你的functions.php服務器端腳本。

+0

所以,從Ajax調用了'success',意味着該職位是成功的,或者PHP腳本沒有正確地分析這些數據? – Patrioticcow

+0

好的,我獲得了成功,是php。愚蠢的我不添加帖子條件 – Patrioticcow

+0

所以我只是加了'if(isset($ _ POST ['name']))...'我成功了 – Patrioticcow

相關問題