如何处理多个同名输入字段,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'];
假设我有一个看起来像这样的 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'];