如何通过PHP将未知数量的HTML表单字段插入MySQL?

时间:2018-12-20 14:29:26

标签: php jquery mysql forms

我有一个功能正常的HTML表单,我正在通过PHP将其内容插入SQL数据库。我需要找到一种方法,只需单击一下即可插入多行(客户将根据需要动态添加更多表单字段)。

这是HTML字段(表单的一部分):

<label for="code">Súťažný kód</label>
<input type="text" name="code" id="code">

然后我使用jQuery将字段值传递给外部.php文件:

jQuery.ajax({
  url:"insert.php",
  method:"POST",
  data:form_data,
  success:function(data) {
    console.log(data);
  }
});

在insert.php中,我正在连接到我的MySQL数据库,并且正在获取如下形式的值:

$code = $_REQUEST['code'];

然后,我能够运行必要的SQL查询以插入带有所有必要值(包括“代码”)的行。

此表单将用作比赛的提交表单。在“代码”表单字段旁边,将有一个加号图标(或类似的图标),然后单击该图标,将出现另一个代码字段。用户最多可以在20个不同的字段中添加20个代码。

我的问题是,如何将所有表单(或所有代码)传递给.php文件,然后将它们作为单独的行插入到MySQL数据库中?

示例:

用户发送插入了3个代码的表格。生成的表单如下所示:

[firstName]
[lastName]
[code]
[code]
[code]

发送表单后,应将这三行添加到数据库中:

#  | firstName | lastName | code
----------------------------------
1  | John      | Doe      | 12345
2  | John      | Doe      | ABCDE
3  | John      | Doe      | 55555

1 个答案:

答案 0 :(得分:2)

将字段更改为数组,例如:

<input type="text" name="code[]" id="code1">
<input type="text" name="code[]" id="code2">

然后您可以像这样在PHP中访问它:

foreach ($_REQUEST['code'] as $key => $val) {
   sql_insert_function($_REQUEST['firstName'], $_REQUEST['lastName'], $val);
}

作为一般建议,请记住验证并转义要插入数据库中的所有数据。