我想过制作能够动态生成大量表单的东西,然后使用jquery来处理他们的提交。
所以我通过使用类似的东西使用php生成表单。
while(some condition) {
echo "<form method=post action=specific_url.php name=some_form_name>";
echo "<input type=text>";
echo "<input type=submit>";
echo "</form>";
}
以上只是一个骨架。主要问题是我应该如何命名/ id表单元素,以便我可以在提交过程中唯一标识每个表单并提交它们,并且使用可以在specific_url页面上提取数据而没有任何问题。
这个功能的直接比喻,我可以在脑海中想到的是Facebook帖子,每个帖子都有一个评论框。
更新
我想我对这个问题不太清楚。对于那个很抱歉。让我重新说一下。
到目前为止,我有这些动态生成的表单。现在假设用户在其中一个文本框中写入并单击“提交”按钮。
在这一点上,jquery应该控制它。将该特定表单数据发送到URL。检索结果并执行某些操作。
所以最后,我应该可以做这样的事情
$(some_selector).submit(function(e) {
e.preventDefault();
$.post('specific_url.php',$(some_selector).serialize(),function(data) {
// some stuff
});
});
此处“some_selector”是在提交特定表单时激活的选择器,然后发送该表单的数据。
答案 0 :(得分:0)
您可以使用隐藏的表单元素并将其值设置为表单的id。
<input type="hidden" name="form_id" value="1">
这样,您可以像提交任何其他表单值一样访问form_id。我现在正在查看facebook源代码,我在评论框旁边看到一些隐藏的表单元素
答案 1 :(得分:0)
要求元素id属性是唯一的,而不是name属性。
也可以使用元素数组,例如:
<input name="comment[]" type=text>
<input name="comment[]" type=text>
<input name="comment[]" type=text>.
在你的PHP中。 $ _POST ['comment']的值将作为数组发送。
如果您想要唯一地标识PHP代码中的每个注释,您将被迫唯一地重命名它们。
<input name="comment1" type=text>
<input name="comment2" type=text>
<input name="comment3" type=text>
由于您使用PHP生成表单,因此可以很容易地跟踪应生成的名称。
如果你有多种形式,你可以自由统治。表格不需要名称。但是,要确定表单在页面中的位置,请放置一个隐藏字段。
while(some condition) {
echo "<form method=post action=specific_url.php";
echo "<input name='position_in_page' type='hidden' value='$somevalue'>";
echo "<input name='comment' type='text'>";
echo "<input type='submit'>";
echo "</form>";
}