2011-11-17 73 views
2

我正在phonegap中開發一個應用程序,並且我試圖將formData從phonegap傳遞到具有jquery和json的遠程服務器,並將其保存到mysql數據庫中。 我從來沒有用過json,而且我真的不確定如何接收和解析服務器上的這些數據。從Phonegap向JSON傳遞formdata

任何人都可以幫我寫一個簡單的PHP腳本來處理這個問題嗎?

這是我用來發送數據的形式和jQuery:

<form method="post" id="infoForm"> 
     <input type="text" name="first_name" id="first_name" value="" placeholder="First Name" /> 
     <input type="text" name="last_name" id="last_name" value="" placeholder="Last Name" /> 
     <input type="text" name="email" id="email" value="" placeholder="Email" /> 
     <button type="submit">Submit</button> 
</form> 

$('#infoForm').submit(function() { 

    var postTo = 'http://siteurl.com'; 

    $.post(postTo,({first_name: $('[name=first_name]').val(), last_name: $('[name=last_name]').val(), email: $('[name=email]').val()}), 
    function(data) { 
     alert(data); 
     if(data != "") { 
      // do something 
     } else { 
      // couldn't connect 
     }   
     },'json'); 
    return false; 
}); 

我一直在試圖尋找沒有任何結果幾個小時的解決方案。

謝謝!

回答

1

首先,你能避免結構是這樣的:

{first_name: $('[name=first_name]').val(), last_name: $('[name=last_name]').val(), email: $('[name=email]').val()} 

使用jQuery的內置序列化方法:

$.serialize(this) 

至於您已經指定「JSON」作爲響應類型「數據「變量將包含已經非序列化的JSON對象。

在事物的PHP腳本方面,你需要做以下幾點:結果

echo json_encode($_POST); 
exit(); 

當然,你需要改變全局變量$ _POST與陣列/對象,我用它來演示目的腳本線以上。

顯然$ _POST變量包含從Ajax請求傳遞的數據,這種變量在PHP腳本的任何作用域中都可用。

0

其基本概念是,您將GET或POST請求中的數據發送到您的服務器(例如http://siteurl.com/index.php)。然後在服務器(index.php)上查看$ _GET,$ _POST或$ _REQUEST變量以查找您發送的數據。獲得數據後,您可以通過json_decode輕鬆爲您設置數據格式。 json_decode將把你的JSON字符串並將其轉換爲一個php變量。

下面是一個快速教程解釋瞭如何執行此使用PHP: http://webhole.net/2009/08/31/how-to-read-json-data-with-php/

json_decode: http://php.net/manual/en/function.json-decode.php

$ _REQUEST: http://php.net/manual/en/reserved.variables.request.php