Dan*_*Dan 4 arrays ajax jquery post
我有一个表单,其中包含一些唯一的输入字段和一些具有重复名称的表单,如下所示:
<form method="post">
Title: <input type="text" name="title" /><br />
Content: <input type="text" name="content" /><br />
Name: <input type="text" name="name" /><br />
Email: <input type="text" name="email" /><br />
Name: <input type="text" name="name" /><br />
Email: <input type="text" name="email" /><br />
Name: <input type="text" name="name" /><br />
Email: <input type="text" name="email" />
</form>
Run Code Online (Sandbox Code Playgroud)
所以'title'和'content'只是字符串值,但'name'和'email'会向目标发送一个字符串数组.这就是我要的.我将标题和内容值存储到表中,并将名称/电子邮件组合保存为不同表中的行.
如果我以标准方式发布此表单(只需在表单标记中指定'action'参数),那么值将被发送到ASP.NET页面,并且可以作为字符串和字符串数组处理,理论上它们可以是相当的容易插入数据库.
但是,该应用程序不允许以传统方式提交表单.相反,我必须使用jQuery AJAX发布表单.
问题是,如何使用jQuery AJAX复制传统表单帖子的行为,维护数组值?
我知道可以序列化表单值,但后来我需要做一些服务器端逻辑来反序列化并有效地创建数组,这是一个额外的步骤.
有没有人知道通过jQuery AJAX传递字符串数组时复制相同行为的方法与执行标准表单发布时一样?
谢谢大家!
您可以使用jQuery的serialize()函数,如下所示:
<form method="post" id="testform">
Title: <input type="text" name="title" /><br />
Content: <input type="text" name="content" /><br />
Name: <input type="text" name="name[]" /><br />
Email: <input type="text" name="email[]" /><br />
Name: <input type="text" name="name[]" /><br />
Email: <input type="text" name="email[]" /><br />
Name: <input type="text" name="name[]" /><br />
Email: <input type="text" name="email[]" />
</form>
Run Code Online (Sandbox Code Playgroud)
...
$.post("test.php", $("#testform").serialize());
Run Code Online (Sandbox Code Playgroud)