4

我有一个表单,其中包含一些唯一的输入字段和其他一些具有重复名称的字段,如下所示:

<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>

所以 'title' 和 'content' 只是字符串值,但 'name' 和 'email' 发送一个字符串数组到目的地。这就是我要的。我会将标题和内容值存储到一个表中,并将名称/电子邮件组合保存为不同表中的行。

如果我以标准方式发布此表单(仅通过在表单标记中指定“操作”参数),那么这些值将被发送到 ASP.NET 页面,并且可以作为字符串和字符串数组处理,理论上它们可以相当轻松插入数据库。

但是,该应用程序不允许以传统方式提交表单。相反,我必须使用 jQuery AJAX 来发布表单。

问题是,如何使用 jQuery AJAX 复制传统表单发布的行为、维护数组值?

我知道可以序列化表单值,但是我需要做一些服务器端逻辑来反序列化并有效地创建数组,这是一个额外的步骤。

有谁知道在通过 jQuery AJAX 传递字符串数组时复制与执行标准表单发布时相同的行为的方法?

谢谢各位!

4

4 回答 4

6

你可以像这样使用 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>

...

$.post("test.php", $("#testform").serialize());
于 2012-06-02T18:25:55.873 回答
1
$.ajax({

  url: "form.aspx", 
  data: $("form").serialize(),
  contentType: "application/json; charset=utf-8",
  dataType: 'json',
  method: 'POST',
  success: function() {

  }
});

阅读.serialize().ajax()。你也有选择.serializeArray()

简而言之,你可以$.post()

于 2012-06-02T18:29:27.607 回答
0

您可以使用 jQuery 的$.serialize$.serializeArray序列化表单字段以使用 ajax 发送它们,如下所示

$.post('URL',$('form').serialize(),function(data){
     // success
})

阅读更多关于$.post

于 2012-06-02T18:25:32.650 回答
0

你只需要在javascript中,你可以把你所有的数据放在数组和ajax数据发送数组中,在服务器端你可以爆炸

   var myarray=array();
   myarray[]='mytestvaliye1';
   myarray[]='mytestvaliye2';
   myarray[]='mytestvaliye3';

   $.ajax( {
   url :  'myrurl',
   data : myarray, 
   success: function (){}
   }

   )
于 2012-06-02T18:28:59.943 回答