将数据从动态表单插入数据库

时间:2016-07-21 15:48:44

标签: php html mysql forms

我目前有一个大型表单,我需要存储数据。我遇到的问题是表单不是静态的,可能会变大,例如用户可能有1个++地址。

当前表由id,form_id,value和field组成。我当前可以从表单中添加值,但是如何创建唯一标识符以了解字段的位置。

  $surname = isset($_POST['surname'][0]) ? $_POST['surname'][0] : '';
  $address1 = isset($_POST['address1'][0]) ? $_POST['address1'][0] : '';
  $address2 = isset($_POST['address2'][0]) ? $_POST['address2'][0] : '';
  $address3 = isset($_POST['address3'][0]) ? $_POST['address3'][0] : '';

然后将这些全部推入数组。

    foreach ($applicant as $value) {
        //statement to insert data
    $stmt = $pdo->prepare("INSERT INTO applicant1(form_id,value)VALUES(?,?)");
    $stmt->bindParam(1, $formid);
    $stmt->bindParam(2, $value);
    $stmt->execute();

    }

我如何获得它来自的字段的名称或是否有不同的方法?

1 个答案:

答案 0 :(得分:0)

您应该创建一个包含两个表的数据库, 提交数据的提交ID,其中包含获取该行所需的一些信息。 该表应该有一个自动增量的pk主键。 下一个表格应该设计为您可能需要多次提交的内容以及您可能想要收集的任何额外数据。那么它应该有一个fk外键,它是第一个表的主键,从而链接回原始提交。如果您正在使用ajax并希望在新地址上实时执行此操作,则您将从刚刚提交的第二个表中返回该行的pk,并将其放入元素的自定义xml属性中。就像data-fk一样,如果你需要在不重新加载页面的情况下实时做其他事情,你就可以抓住那个fk。