2011-07-29 11 views
4

ユーザーがホームページにデータを入力した後、その値をGoogle App EngineのPythonスクリプトに送信して処理します。スクリプトの処理が終了したら、値をホームページに戻して、結果をページの下部に表示します。私はページ全体をリロードしたくないので、ユーザーがサブミットするときにjqueryを使いたいと思っています。Google App Engineからjqueryに値を返すにはどうすればよいですか?

I持って、私は私の$アヤックスコールでのpython 2)の中から自分のホームページに戻って結果を渡すか、どのように私は処理を処理するPythonスクリプトの名前を指定するにはどうすればよい2つの質問 1)あなたのJavaScriptでの成功関数へ

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引数は、HTTP要求に対する応答の本体が渡されます。 self.response.out.writeで必要なデータをハンドラに書き込むだけです。

他の場所と同じスクリプトを指定します。WSGIアプリケーションのハンドラをマップします(サンプルでは、​​不要と思われる '/'としてマップされています)。ハンドラスクリプトapp.yamlに正しくマップされています。 AJAX呼び出しの処理は、他の標準HTTP要求の処理と同じです。

+0

私は[self.response.out.write(var3)]を試しましたが、HTMLページ全体を置き換えます。つまり、jquery関数の成功関数に渡しません。 – Tolu

+2

@Toluイベントを添付しているようですフォームの[送信]ボタンのクリックイベントに送信します。その場合、スクリプトの実行とAJAXリクエストの実行に加えて、Javascriptを使用しない場合と同様に、ブラウザは標準フォームの提出も行います。フォームからアクションを削除し、送信ボタンではなく通常のボタンにする必要があります。 –

+0

それを試みます。もう1つの質問 - あなたは私が現在持っている '/'マッピングを使用すべきではないと言いました。今、ローカルマシン上でテストしているので、ブラウザのURLはhttp:// localhost:8081 /です。私の意図は、ユーザーが自分のサーバーのデフォルトページに着いたら、index.htmページにある自分のフォームを表示するということです。どのようにWSGIアプリのマッピングを行う必要がありますか?おかげさまで – Tolu