我目前有一个大型表单,需要在其中存储数据。我遇到的问题是表单不是静态的并且可能会变得更大,例如用户可能有 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();
}
我如何获取它来自的字段的名称或者是否有不同的方法?
最佳答案
您应该创建一个包含两个表的数据库, 提交数据的提交 ID 以及获取该行所需的一些信息。 该表应该有一个自动增量的 pk 主键。 下一个表应该针对您将要多次提交的内容以及您可能想要收集的任何额外数据进行设计。那么它应该有一个 fk 外键,它是第一个表的主键,从而链接回原始提交。如果您使用的是 ajax 并且想要在新地址上实时执行这一切,您将从刚刚提交的第二个表中返回该行的 pk 并将其放入元素的自定义 xml 属性中。就像 data-fk 一样,如果您需要实时执行其他操作而无需重新加载页面,则可以获取该 fk。
关于php - 将动态表单中的数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38508778/