2011-02-25 9 views
1

私は、名字のための10のテキスト入力フィールドと、姓のための10のテキスト入力フィールドとを有するフォームを有する。最初のフィールドだけが必要なので、firstフィールドとlastフィールドの両方から1〜10個の変数が必要です。フォームからListのような入力をいくつか提出する方法はありますか?

今私は、クエリ文字列から20個すべてを取り出し、空の文字列は無視しています。

質問:サーバーにJSON文字列として渡す方法はありますか?それから、サーバー側を反復処理しますか?

Google App EngineサーバーでDjangoテンプレート、jQuery(ajaxでのPOSTing)とPythonを使用しています。

HTML:

<label>First Name</label> 
<input type="text" name="fname-1" id="fname-1" /><br/> 
<label>Last Name</label> 
<input type="text" name="lname-1" id="lname-1" /><br/> 

<label>First Name</label> 
<input type="text" name="fname-2" id="fname-2" /><br/> 
<label>Last Name</label> 
<input type="text" name="lname-2" id="lname-2" /><br/> 

<label>First Name</label> 
<input type="text" name="fname-3" id="fname-3" /><br/> 
<label>Last Name</label> 
<input type="text" name="lname-3" id="lname-3" /><br/> 
.... 

のjQuery:

var fname_1 = $("input#fname-1").val(); 
var fname_2 = $("input#fname-2").val(); 
var fname_3 = $("input#fname-3").val(); 
var fname_4 = $("input#fname-4").val(); 
var lname_1 = $("input#lname-1").val(); 
var lname_2 = $("input#lname-2").val(); 
var lname_3 = $("input#lname-3").val(); 
var lname_4 = $("input#lname-4").val(); 
.... 

    $.ajax({ 
     type: "POST", 
     url: "/foo/", 
     data: {"fname_1":fname_1,"fname_2":fname_2, 
        "fname_3":fname_3,"fname_4":fname_4, 
        "lname_1":lname_1,"lname_2":lname_2, 
        "lname_3":lname_3,"lname_4":lname_4}, 
     dataType: "json", 
    ... 

のPy:

fname_1 = self.request.get('fname_1') 
fname_2 = self.request.get('fname_2') 
fname_2 = self.request.get('fname_3') 
fname_2 = self.request.get('fname_4') 
lname_1 = self.request.get('lname_1') 
lname_2 = self.request.get('lname_2') 
lname_2 = self.request.get('lname_3') 
lname_2 = self.request.get('lname_4') 

#do stuff, check for missing properties, create new Object with data ... 

答えて

0

あなたはjQueryのserialize()方法を見てみたいことがあります。それはあなたのためにすべての作業を行い、あなたがそれらを反復することができるサーバーにすべてのフォームの値を送信します。あなたはserialize()を使用する必要があります

var data = $("form").serialize(); 
$.ajax({ 
    type: "POST", 
    url: "/foo/", 
    data: data, 
    dataType: "json", 
0

:だからあなたはあなたのコードを変更することができます。試してください:

var myData = $("#formId").serialize(); 

$.ajax({ 
    type: "POST", 
    url: "/foo/", 
    data: myData, 
    dataType: "json", 
... 
関連する問題