通过jQuery向html表单添加更多字段很容易。然后,我们可以序列化字段,如果它们具有相同的name
但是如果我们有一组字段呢?例如
<input type="text" name="movie1_name" />
<input type="text" name="movie1_director" />
<input type="text" name="movie1_year" />
现在我想通过jQuery添加一组新的字段
<input type="text" name="movie2_name" />
<input type="text" name="movie2_director" />
<input type="text" name="movie2_year" />
等等。我用PHP处理表单,用三列(名称,导演,年份)将电影插入到mysql数据库中。在上面提到的示例中,很难序列化字段以创建适当的$ _POST数组。我应该如何序列化jquery添加的电影集?
答案 0 :(得分:3)
<input type="text" name="movie_name[]" />
<input type="text" name="movie_director[]" />
<input type="text" name="movie_year[]" />
<input type="text" name="movie_name[]" />
<input type="text" name="movie_director[]" />
<input type="text" name="movie_year[]" />
没有别的。在服务器上,你将得到(在POST情况下)数组$ _POST ['movie_name'],$ _POST ['movie_director']和$ _POST ['movie_year'];。具有相同索引的元素来自同一组输入。
你有什么类型的序列化问题?
<form>
<input type="text" name="movie_name[]" />
<input type="text" name="movie_director[]" />
<input type="text" name="movie_year[]" />
<hr />
<input type="text" name="movie_name[]" />
<input type="text" name="movie_director[]" />
<input type="text" name="movie_year[]" />
<br />
<input type='button' id='serialize' value='Click me' />
</form>
和js代码:
$('#serialize').click(function(){
alert($('form').serialize());
});
当你想提交数据时只需写
$.post('script.php', $('form').serialize(), function() {alert('Saved');});
ps:如果你害怕丢失一些东西,只需比较count($ _ POST ['movie_name']),count($ _ POST ['movie_director'])和count($ _ POST ['movie_year'])。
或者您可以添加索引
<input type="text" name="movie_name[0]" />
<input type="text" name="movie_director[0]" />
<input type="text" name="movie_year[0]" />
<input type="text" name="movie_name[1]" />
<input type="text" name="movie_director[1]" />
<input type="text" name="movie_year[1]" />
答案 1 :(得分:1)
根据与Cheery
的有用讨论,我得出结论,最好和最安全的方法是使用
<input type="text" name="movie_name[i]" />
<input type="text" name="movie_director[i]" />
<input type="text" name="movie_year[i]" />
我们使用jQuery定义每个i
以便SAFELY序列化字段。这样,我们可以确定序列化数组是并行且匹配良好的,而不会错位。
答案 2 :(得分:0)
您可以这样做:
<input type="text" name="movie1_name" />
<input type="text" name="movie1_director" />
<input type="text" name="movie1_year" />
// OTHER:
<input type="text" name="movie2_name" />
<input type="text" name="movie2_director" />
<input type="text" name="movie2_year" />
对所有人这样做...在Jquery中,你创建了一个根据需要创建字段的函数...我不是JQuery中最好的,所以我无法帮助你,但我告诉你的工作方式PHP很适合我...