2012-07-11 33 views
0

我有一对由文本字段组成的表单。用户可以根据需要创建任意数量的对并填写字段。行的字段被添加到表格的底部。 下面是格式的示例:用ajax提交带有未知数量字段的html表单

<form id="dataForm"> 
<table id="textTable"> 
<tbody> 
<tr> 
    <td><h2>Dancer</h2></td> 
    <td><h2>Place</h2></td> 
</tr> 
<tr> 
    <td><input type="text" name="Dancer0" size="15" id="Dancer0"></td> 
    <td><input type="text" name="Place0" size="15" id="Place0"></td> 
</tr> 
<tr> 
    <td><input type="text" name="Dancer1" size="15" id="Dancer1"></td> 
    <td><input type="text" name="Place1" size="15" id="Place1"></td> 
</tr> 
</tbody> 
</table> 
<input type="button" id="newRow" value="New Row" accesskey="/" onclick="moreFields();"> 
<input type="button" value="Update" name="Submit" onclick="submitForm(this.form);"> 
</form> 

我有越来越的形式提交正确使用AJAX外部PHP页面的麻烦。这是我现在使用的功能:

function submitForm(form) 
{ 
jQuery.ajax({ 
    type: "POST", 
    url: <?php echo '"'.dirname(curPageURL()).'/ResultsUpdater.php"' ?>, 
    data: form.serialize(), 
    success: function(msg){ 
     alert(msg); 
    } 
}); 
return false; 
} 

在我见过他们使用$来表示jQuery的其他例子,这将是摆在“形式”前:$(form).serialize()$.ajax({...但我的服务器不喜欢$。我也试过jQuery.form.serialize(),但那也行不通。我在控制台中得到的错误总是沿着"TypeError: 'undefined' is not an object (evaluating 'jQuery.form.serialize')"

这样的行如果我可以提交一堆键值对到PHP文件(根据我理解的序列化()),那就太好了。

您可以尝试的形式here

只需选择下拉菜单项来查看表单之一。

感谢

+0

你的意思是你的服务器不喜欢'$'? – 2012-07-11 21:16:47

+0

是否尝试过jQuery(“form”)。serialize(); – Kishore 2012-07-11 21:18:06

+0

这与Java无关,也许你的意思是Javascript。 – 2012-07-11 21:20:11

回答

3

你可以不喜欢这样,而不是:

jQuery("#dataForm").serialize(); 

我已经成功地试了一下你所引用的页面上。

由于$未定义在您的页面上,我最好的猜测是您加载了一些脚本,将$重置为undefined。那么最好的方法是退回使用jQuery,因为$只是jQuery的别名。

+0

完美,所以它只是语法。由于我在Obj-C编程很多,我发现JavaScript语法很混乱。 – 2012-07-11 21:30:34

+0

@BrandonMcq快乐它帮助! – 2012-07-11 21:32:54