了解使用PHP单击的HTML按钮,没有可用的值名称

了解使用PHP单击的HTML按钮,没有可用的值名称,php,html,Php,Html,我有一个包含4个步骤的向导,在其中一个步骤中,您可以添加项目。默认情况下,列出了3个时间5个空输入字段。当你点击一个按钮时,必须再添加一些。3乘以5的字段由循环添加 如何确定必须在何处添加一些字段(在第二个或第三个字段的前5个字段中)。我不能为每个按钮使用另一个名称,因为有时可能有超过3组的5个字段。在我的代码(PHP)中,我使用按钮的名称来了解表单中发生了什么,因此每个组中的按钮的名称不能不同。。。 此外,整个步骤是1个表单,因此帖子不能转到其他脚本。。。每个组的按钮值必须相同 我一直在考虑可

我有一个包含4个步骤的向导,在其中一个步骤中,您可以添加项目。默认情况下,列出了3个时间5个空输入字段。当你点击一个按钮时,必须再添加一些。3乘以5的字段由循环添加

如何确定必须在何处添加一些字段(在第二个或第三个字段的前5个字段中)。我不能为每个按钮使用另一个名称,因为有时可能有超过3组的5个字段。在我的代码(PHP)中,我使用按钮的名称来了解表单中发生了什么,因此每个组中的按钮的名称不能不同。。。 此外,整个步骤是1个表单,因此帖子不能转到其他脚本。。。每个组的按钮值必须相同

我一直在考虑可能的解决方案,并得出以下结论:

  • 单击一个javascript会在帖子中添加一个值(在一个隐藏的字段中?),但这是与表单一起发布的吗
  • 是否可以获取单击按钮的ID?这可能不同:-)
我需要在点击后刷新,所以纯javascript也不是一个解决方案

这是一个非常具体的问题,但我希望有人能给我一些指导

下面是我要说的代码:

<h3><label class="list_list:table_title">Eten</label></h3>

        <table id="eten">
            <thead>
                <tr>
                    <th>Naam item</th>
                    <th>Aantal</th>
                </tr>
            </thead>
            <tbody>

                                                                <tr>
                    <td class="item"><input type="text" name="item_1_1" value="" class="inputText"  maxlength="64" size="46" tabindex="11"/></td>
                    <td class="amount"><input type="text" name="amount_1_1" value="" class="inputText"  maxlength="64" size="10" tabindex="11"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_1_2" value="" class="inputText"  maxlength="64" size="46" tabindex="12"/></td>
                    <td class="amount"><input type="text" name="amount_1_2" value="" class="inputText"  maxlength="64" size="10" tabindex="12"/></td>
                </tr>
                                                                <tr>

                    <td class="item"><input type="text" name="item_1_3" value="" class="inputText"  maxlength="64" size="46" tabindex="13"/></td>
                    <td class="amount"><input type="text" name="amount_1_3" value="" class="inputText"  maxlength="64" size="10" tabindex="13"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_1_4" value="" class="inputText"  maxlength="64" size="46" tabindex="14"/></td>
                    <td class="amount"><input type="text" name="amount_1_4" value="" class="inputText"  maxlength="64" size="10" tabindex="14"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_1_5" value="" class="inputText"  maxlength="64" size="46" tabindex="15"/></td>

                    <td class="amount"><input type="text" name="amount_1_5" value="" class="inputText"  maxlength="64" size="10" tabindex="15"/></td>
                </tr>
                            </tbody>
        </table>
        <input id="list_list:add" type="submit" name="list_list:add" value="voeg extra items toe" class="add" />
        <div class="spacer"></div>
                        <h3><label class="list_list:table_title">Drinken</label></h3>
        <table id="drinken">

            <thead>
                <tr>
                    <th>Naam item</th>
                    <th>Aantal</th>
                </tr>
            </thead>
            <tbody>
                                                                <tr>

                    <td class="item"><input type="text" name="item_2_1" value="" class="inputText"  maxlength="64" size="46" tabindex="21"/></td>
                    <td class="amount"><input type="text" name="amount_2_1" value="" class="inputText"  maxlength="64" size="10" tabindex="21"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_2_2" value="" class="inputText"  maxlength="64" size="46" tabindex="22"/></td>
                    <td class="amount"><input type="text" name="amount_2_2" value="" class="inputText"  maxlength="64" size="10" tabindex="22"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_2_3" value="" class="inputText"  maxlength="64" size="46" tabindex="23"/></td>

                    <td class="amount"><input type="text" name="amount_2_3" value="" class="inputText"  maxlength="64" size="10" tabindex="23"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_2_4" value="" class="inputText"  maxlength="64" size="46" tabindex="24"/></td>
                    <td class="amount"><input type="text" name="amount_2_4" value="" class="inputText"  maxlength="64" size="10" tabindex="24"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_2_5" value="" class="inputText"  maxlength="64" size="46" tabindex="25"/></td>
                    <td class="amount"><input type="text" name="amount_2_5" value="" class="inputText"  maxlength="64" size="10" tabindex="25"/></td>

                </tr>
                            </tbody>
        </table>
        <input id="list_list:add" type="submit" name="list_list:add" value="voeg extra items toe" class="add" />
        <div class="spacer"></div>
                        <h3><label class="list_list:table_title">Varia</label></h3>
        <table id="varia">
            <thead>

                <tr>
                    <th>Naam item</th>
                    <th>Aantal</th>
                </tr>
            </thead>
            <tbody>
                                                                <tr>
                    <td class="item"><input type="text" name="item_3_1" value="" class="inputText"  maxlength="64" size="46" tabindex="31"/></td>

                    <td class="amount"><input type="text" name="amount_3_1" value="" class="inputText"  maxlength="64" size="10" tabindex="31"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_3_2" value="" class="inputText"  maxlength="64" size="46" tabindex="32"/></td>
                    <td class="amount"><input type="text" name="amount_3_2" value="" class="inputText"  maxlength="64" size="10" tabindex="32"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_3_3" value="" class="inputText"  maxlength="64" size="46" tabindex="33"/></td>
                    <td class="amount"><input type="text" name="amount_3_3" value="" class="inputText"  maxlength="64" size="10" tabindex="33"/></td>

                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_3_4" value="" class="inputText"  maxlength="64" size="46" tabindex="34"/></td>
                    <td class="amount"><input type="text" name="amount_3_4" value="" class="inputText"  maxlength="64" size="10" tabindex="34"/></td>
                </tr>
                                                                <tr>
                    <td class="item"><input type="text" name="item_3_5" value="" class="inputText"  maxlength="64" size="46" tabindex="35"/></td>
                    <td class="amount"><input type="text" name="amount_3_5" value="" class="inputText"  maxlength="64" size="10" tabindex="35"/></td>
                </tr>

                            </tbody>
        </table>
        <input id="list_list:add" type="submit" name="list_list:add" value="voeg extra items toe" class="add" />
        <div class="spacer"></div>
                </div>
<div id="formButtons">
    <input id="list_info:back" type="submit" name="list_info:back" value="<< Terug" tabindex="11" class="back" />
    <input id="list_info:next" type="submit" name="list_info:next" value="Volgende >>" tabindex="12" class="next" />
    <input id="list_info:options" type="submit" name="list_info:options" value="Opties" tabindex="13" class="options" />

    <input id="list_info:finish" type="submit" name="list_info:finish" value="Voltooien" tabindex="14" disabled="disabled" class="finish" />
</div>
Eten
Naam项目
安塔尔
喝
Naam项目
安塔尔
瓦里亚
Naam项目
安塔尔

如果您提供一些代码,可能更容易看到您的问题


无论如何,当您无法使用或更改输入的名称时,您可以始终为每个输入指定一个唯一的id,并使用该id。如果这也是一个问题,那么您可以在class属性中存储一些任意数据。

我不能确切地了解您的问题是什么,但看起来您可以使用一些AJAX/JavaScript功能来增强整个过程


当您单击用于确定是否需要其他字段的按钮时,您可以向服务器端脚本发送一个AJAX调用,该脚本的答案可以触发一个函数,该函数将向表单中添加您需要的任何内容,包括遵循特定规则的专有名称(如name_1、name_2、…、name_n)或者可以从服务器端脚本计算并发送回表单。

对于添加新行但需要特定名称的复杂情况,我使用此约定“btn_name_1”、“btn_name_2”等。发布表单后,可以使用regex或substr(或类似)拆分字段/按钮名称在PHP中,查找单击的按钮(“btn_名称”)和行(“1”)。这样,每个输入字段都可以有自己的唯一名称,同时保持其功能和用途清晰

下面是一些PHP,它将帮助使用上述命名方案拆分按钮/字段上的名称和数字

// Loop through POST Variables
foreach ($_POST as $key => $value) {    
  if (substr($key, 0, 8) == 'btn_name') {
    // "btn_name" was clicked, which ID?
    $id = (int)substr($key, 8);
  }
}

编辑:看到您的代码后,一切都有意义!只需将您的字段命名为“eat_name_1”、“eat_number_1”(第一行)、“eat_name_2”、“eat_number_2”(第二行)等。对于其他项目,请尝试“drink_name_1”、“drink_number_1”(第一行)、“drink_name_2”、“drink_number_2”(第二行)等。使用上面的PHP代码将所有随机字段拆分为名称/值对。添加新行很容易,只需增加末尾的数字。

我真的需要重新加载整个页面。。。我添加了一些代码,所以您(希望)可以理解我的意思;-)如果您想在添加新的表单集合时重新加载整个页面,只需在“voeg extra items toe”按钮中添加一个隐藏字段,并将其环绕在