如何处理同名不同值的处理-php形式

How to handle processing of different values of the same name - php form

我正在尝试熟悉自己 php,但在处理表格时我 运行 遇到了问题。这是一个图书馆。 每本书可能有不止一种类型,数据库被格式化为具有多对多关系。
通过 table 并创建与一本书关联的所有流派名称和 ID 对的新关联数组,我能够显示与一本书关联的多种流派。然后,我再次遍历该数组,通过 html select 标签显示多个下拉列表,其中所有类型作为选项,并且与 selected.
这本书相关联 这就是我如何解决显示数据的问题,但是现在当涉及到编辑或添加书籍信息的过程时,我无法理解我将如何进行表单提交,其中我有多个相同名称的值(在这个例子中,"genre_id").我是否必须以某种方式创建单独的页面或单独的提交(POST 请求)?我可以提交一个数组,然后在处理页面上对其进行解读吗?如果可以,怎么做?
我不确定如何在这个问题上分享我的代码,因为它更像是一个 "what would this code look like?" 的问题。我该如何处理?如何整理这些值?

在 html 中,您可以命名您的元素,例如 name=‘myFromElement[]’。然后,您可以使用 JS 允许用户添加任意​​数量的这些输入。 PHP 会将元素识别为数组 $_POST['myFormElement'] 的成员。然后,您可以通过遍历 $_POST[‘myFormElement’].

来访问所有数据

参见:$_POST Array from html form

当您添加此类选项时,您应该使用复选框 - 这样您就可以轻松地向它们添加许多值。 示例:

<label for="option1">Gender 1</label><input id="option1" name="gender[1]" value="y" type="checkbox" />
<label for="optionX">Gender X</label><input id="optionX" name="gender[x]" value="y" type="checkbox" />

稍后在 PHP 中,您可以只对这些元素进行 foreach:

if(isset($_POST['gender'])({
foreach($_POST['gender'] as $id => $val){
echo $id.' '.$val.'<br />';
}
}

在此示例中,来自其他 table 的所有性别 ID 都将在 $id 变量中。在 label 你应该把名字放在那里。 optionXgender[x] 不需要具有相同的 "x" - 值 label 中的元素 for="option1" 必须与 input

中的 id 相同