如何处理多个同名输入字段,post到PHP?

How to deal with many input fields with the same name, and post to PHP?

假设我有一个看起来像这样的 HTML 结构。每个左上下文字段和右上下文字段都是相关的,在后端应该可以 link 离开它的右同事。

<table>
  <tbody>
    <tr>
      <td>
        <input type="text" class="left-context-field" value="First left value">
      </td>
      <td>
        <input type="text" class="right-context-field" value="First right value">
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" class="left-context-field" value="Second left value">
      </td>
      <td>
        <input type="text" class="right-context-field" value="Second right value">
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" class="left-context-field" value="Third left value">
      </td>
      <td>
        <input type="text" class="right-context-field" value="Third right value">
      </td>
    </tr>
    <tr>
      <td>
        <input type="text" class="left-context-field" value="Fourth left value">
      </td>
      <td>
        <input type="text" class="right-context-field" value="Fourth right value">
      </td>
    </tr>
  </tbody>
</table>

用户可以根据需要添加任意数量的额外行。我将如何将值发布到 PHP 文件?

我是否应该将所有行包装在一个巨大的表格中,然后调用 .serializeArray()?还是每行一张表格?

从面向数据的方法来看,处理这个问题的最佳方法是什么?我会将数据发送到后端,但我想让后端开发人员尽可能轻松地访问数据。

在 HTML 中,发送数组的方式是使用括号。

例如

name="values[]"

像这样。

<form name = 'vals_form' action = 'php_page.php' method = 'post'>
  <table>
    ... <!-- Your all code -->
    <tr>
      <td>
        <input type="text" class="left-context-field" value="First left value" name="values[]">
      </td>
      <td>
        <input type="text" class="right-context-field" value="First right value" name="values[]">
      </td>
    </tr>
    ...
    <input type = 'submit' value = 'Post Values' />
  </table>
</form> <!--and close the form tag-->

在PHP中你得到数组

$values = $_POST['values'];

我已经编辑了 meda 的答案,但他不赞成该编辑,所以我又在这里发布。

在 HTML 中,发送数组的方式是使用括号。

例如

name="values[]"

像这样。

<form name = 'vals_form' action = 'php_page.php' method = 'post'>
  <table>
    ... <!-- Your all code -->
    <tr>
      <td>
        <input type="text" class="left-context-field" value="First left value" name="values[]">
      </td>
      <td>
        <input type="text" class="right-context-field" value="First right value" name="values[]">
      </td>
    </tr>
    ...
    <input type = 'submit' value = 'Post Values' />  
  </table>
</form> <!--and close the form tag-->

在PHP中你得到数组

$values = $_POST['values'];