0

我想制作一些动态生成大量表单的东西,然后使用 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>";
}

以上只是一个骨架。主要问题是我应该如何命名/标识表单元素,以便我可以在提交期间唯一标识每个表单并提交它们,并且使用可以毫无问题地在 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”是在提交特定表单然后发送该表单数据时激活的选择器。

4

2 回答 2

0

您可以使用隐藏的表单元素并将其值设置为表单的 id。

<input type="hidden" name="form_id" value="1">

这样,您可以在提交后像访问任何其他表单值一样访问 form_id。我现在正在查看 facebook 源代码,我在评论框旁边看到了一些隐藏的表单元素

于 2013-11-10T17:58:38.283 回答
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>";
}
于 2013-11-10T18:44:58.193 回答