在PHP中处理动态数量的表单字段的最佳方法?

ARW*_*ARW 6 html php forms laravel laravel-3

我有一个系统,我需要列出一个任意数量的员工,其中包含一周中每天的文本字段,可以输入"小时工作"值.

所以我需要生成一个动态行数的表,每行将包含7个文本字段.我只是想知道在为这些字段分配ID时使用的最佳约定是什么,以便在我的后端收到输入数据后可以轻松迭代?

每行都有一个与代表员工ID的行相关联的ID号.

能够做到这样的事情真是太棒了:

foreach($rows as $row)
{
     $id = $row['id'];

     $employee = Employee::find($id);

     foreach($row['hoursWorked'] as $dailyHours)
     {
           $timecard = new Timecard();
           $timecard->hours = $dailyHours;
           $employee->timecards->insert($timecard);
     }
}
Run Code Online (Sandbox Code Playgroud)

在HTML方面构建表单和ID的最佳方法是什么,以使其尽可能轻松?

作为旁注,我正在Laravel 3框架内工作,以防其他任何解决方案开放.

Col*_*n M 13

<input type="text" name="hoursWorked[]" />将在内部转换为一个数组$_POST['hoursWorked'].这意味着你可以这样做:

<input type="text" name="hoursWorked[12345][]" /> <!-- Sunday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Monday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Tuesday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Wednesday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Thursday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Friday -->
<input type="text" name="hoursWorked[12345][]" /> <!-- Saturday -->
Run Code Online (Sandbox Code Playgroud)

然后,在PHP中:

<?php
foreach ($_POST['hoursWorked'] as $employeeId=>$dayArray) {
    foreach ($dayArray as $dayOfWeek=>$hoursWorked) {
        // $employeeId will be 12345
        // $dayOfWeek will be 0, 1, 2, 3, 4, 5 ,6
        // $hoursWorked will be the value of the text field
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 完美这将完全符合我的需要,谢谢! (2认同)