我有一个PHP表单,默认显示一个“用户详细信息”块。 “用户详细信息”部分包含名字,姓氏和地址等。我需要在单击按钮后重复相同的块,以便用户可以在表单上输入“n”个用户。另外我需要保存MySQL数据库中的所有信息。实现这一目标的最佳方法是什么?请告诉我。我感谢任何帮助。
谢谢。
答案 0 :(得分:1)
我会使用jQuery添加其他表单元素。你需要给每个元素一个不同的'name'属性 - 我会使用name ='user1name'(在下一个用户名字段名='user2name')。如果您需要特定的帮助,请评论我的帖子。当表单提交时,我将使用php在循环结束时使用insert语句遍历每组字段。
PHP是这样的:
for ($i = 1; is_null($_POST['name' . $i]) == false; $i++) {
$name = $_POST['user' . $i . 'name'];
// repeat for all your fields
// do your insert statement here - 1 insert per user created
mysql_query("INSERT INTO table_name (Name, Address, ...) VALUES ('$name', '$address', ...)");
}
jQuery是这样的:
现有的HTML 此时应该只有1个div = class = user
<div id='fields'>
<div class='user'>
<input type='text' name='user1name' />
<input type='text' name='user2name' />
... more elements ...
</div>
</div>
的jQuery
var userFields = $("div.user").clone();
$(userFields).appendTo("div#fields");
$("div#fields").children("div.user:last").children().each(function() {
// change names here!
});
这将复制现有字段并将其副本添加到字段div中。它还将为第二组用户字段设置新名称。注意:您只需要设置一次userFields,然后您可以根据需要多次使用$(userFields).appendTo("div#fields");
(只要userFields变量在范围内)。
如果您在用户字段中的元素上附加了事件处理程序,请使用$("div.user").clone(true, true);
代替$("div.user").clone();
。