如何将多个HTML表单中的值添加到要发送的一个数组中

时间:2014-07-13 14:29:49

标签: javascript php html forms

我正在构建一个移动Web应用程序,员工可以使用该应用程序提交给定周的工作时间。表单显示7个表单(每个表单代表一天),并由php循环函数构建,该函数运行包含本周信息的数组。每一天都是不同的形式。

我无法将所有日子合并为一个,因为我需要允许员工自己添加每天的字段(div中的表单)以添加他们在工作时执行的活动。

看起来像这样: enter image description here

如果我将所有日期合并到一个表单中,则每次在某一天添加​​字段时,它会将字段添加到第一天(您可能在最后一天需要它)。

问题

我需要使用一个按钮提交整个星期。我已经看过像

这样的javascript方法
document.getElementById("form1").submit();
document.getElementById("form2").submit();

但是这不能正常工作。任何人都可以向我提供方向或一些代码,帮助我解决这个问题吗?任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:1)

你能不能用一种形式实现这个目标?

HTML

<form>
    <fieldset>
        <!-- all your fields for the day -->
        <legend>Monday</legend>
    </fieldset>

    <fieldset>
        <!-- all your fields for the day -->
        <legend>Tuesday</legend>
    </fieldset>
    <!-- ... -->

    <input type="submit" />        
</form>

答案 1 :(得分:0)

查看已添加到问题中的标记,我假设您在服务器端使用PHP。在这种情况下,我会使用数组作为输入字段名称:

<form method="post">
    <fieldset>
        <legend>Maandag</legend>
        <input type="text" name="days[maandag][verantwoording][klant][]"><br>
        <input type="text" name="days[maandag][verantwoording][klant][]"><br>
        <input type="text" name="days[maandag][verantwoording][klant][]">
    </fieldset>
    <fieldset>
        <legend>Dinsdag</legend>
        <input type="text" name="days[dinsdag][verantwoording][klant][]"><br>
        <input type="text" name="days[dinsdag][verantwoording][klant][]"><br>
        <input type="text" name="days[dinsdag][verantwoording][klant][]">
    </fieldset>
    <button type="submit">
</form>

然后很容易访问PHP中的所有字段,因为PHP会为每个[]添加一个(从零开始)索引:

<?php

echo $_POST['days']['maandag']['verantwoording']['klant'][0];
echo $_POST['days']['maandag']['verantwoording']['klant'][1];
echo $_POST['days']['maandag']['verantwoording']['klant'][2];

另见the documentation on HTML forms