2011-07-29 27 views
4

用戶在我的主頁上輸入數據後,我希望將值發送到谷歌應用程序引擎python腳本進行處理。腳本完成處理後,我希望它將值傳遞迴我的主頁,該主頁將在頁面的下部顯示結果。由於我不想重新加載整個頁面,我想在用戶點擊提交時使用jQuery。如何從谷歌應用程序引擎返回值到jquery?

我有2個問題 1)我如何通過結果反饋給我的主頁,從蟒蛇 2)在我的$就調用中,我怎麼指定python腳本,它將處理的處理名

jquery code 
$(function() { 
    $("input#Submit").click(function() { 
    $.ajax({ 
    type: "POST", 
    url: "/", //my python script 
    data: { 
     var1: $("input#var1").val(), 
     var2: $("input#var2").val()  
    }, 
    success: function(returnData){ 
    alert(returnData) 
    } 

}); 
}); 

python script 
class processInfo(webapp.RequestHandler): 
    var1 = self.request.get("var1") 
    var2 = self.request.get("var2") 
    do some processing here e.g. 
    var 3 = var1* var2 
    how do i return var 3 back to the $.ajax call? 

application = webapp.WSGIApplication(('/', processInfo), debug = true) 

回答

4

returnData參數在JavaScript的成功會被傳遞給了響應HTTP請求的主體。只需在您的處理程序中將您想要的數據寫入self.response.out.write即可。

指定要調用的腳本與其他任何地方相同:在WSGI應用程序中映射處理程序(在您的示例中,它映射爲'/',您可能不需要),並確保處理程序腳本在app.yaml中正確映射。處理AJAX調用與處理任何其他標準HTTP請求沒有區別。

+0

我試過[self.response.out.write(var3)],但它取代了整個html頁面,即它不會將它傳遞給jquery函數的成功函數 – Tolu

+2

@Tolu它看起來像你附加的事件到表單上的提交按鈕上的點擊事件。如果是這樣,除了腳本正在運行並執行AJAX請求外,您的瀏覽器還將執行標準表單提交,就像沒有Javascript一樣。您應該從表單中刪除該操作,並將其設置爲常規按鈕,而不是提交按鈕。 –

+0

將嘗試。另一個問題 - 你說我不應該使用我現在擁有的'/'映射。現在,我正在測試我的本地機器,因此瀏覽器URL是http:// localhost:8081 /。我的意圖是,當用戶登陸我的服務器的默認頁面時,它應該顯示我的表單,它位於index.htm頁面上。我應該怎麼做WSGI應用程序映射? – Tolu