我的解决方案允许链接任意 HTML 输入元素和数据库字段。对于任何需要的情况,可以将此代码放入可重用的函数中。
将数据库字段命名为与 HTML 表单元素的名称属性相同。然后,您将能够执行以下操作:
<!doctype html>
<form>
<input name="email" />
<input name="age" />
<input name="website" />
</form>
在 PHP 中,将 HTML 文件的内容读入 DomDocument 构造函数:
$dom = new DomDocument(file_get_contents("MyPage.html"));
然后,您可以获取所有输入元素的 DomNodeList,只需:
$xpath = new DomXPath($dom);
$nodeList = $xpath->query("//form/input");
假设您的数据库数据表示在一个名为的关联数组中$data
:
$data = $mysql->query("yourQuery");
foreach($nodeList as $node) {
$key = $node->getAttribute("name");
if(array_key_exists($key, $data)) {
$node->setAttribute("value", $data[$key]);
}
}
然后,您可以通过将 DOM 输出到浏览器来像往常一样呈现页面。
奖励:将表单数据保存到数据库时,由于 HTML 输入字段的名称与数据库字段名称匹配,您可以将 $_POST 数组传递给您的 DAL。