2011-02-25 33 views
1

我有一个表格有10个文本输入字段的名字,和10个文本输入字段的姓氏。只有第一个是必需的,所以我希望第一个和最后一个名称字段都有1-10个变量。有没有办法提交几个类似的输入作为从窗体列表?

现在,我从查询字符串中提取所有20个字符串,并忽略空字符串。

问题:有没有一种方法可以将这些作为JSON字符串传递给服务器,然后通过它们遍历服务器端?

我在Google App Engine服务器上使用Django模板,jQuery(在ajax中发布)和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", 
    ... 

潘岳:

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()方法。它会为你做所有的工作,并将所有的表单值发送到服务器,在那里你可以遍历它们。所以你可以改变你的代码:

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

你应该使用serialize()。试试:

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

$.ajax({ 
    type: "POST", 
    url: "/foo/", 
    data: myData, 
    dataType: "json", 
... 
相关问题