我正在使用一个从数据库( PDO::fetch(PDO::FETCH_ASSOC) )返回 Fetched Array 的函数。
这个函数返回很多列,当我在表单中编辑所有这些列时,显然我需要用当前数据填充这些字段。
代码(针对问题修改):
//returns something like $owner["name"], $owner["lastname"],
//$owner["phone1"] ... and 53 fields more.
$owner = controllerGetOnwer($ownerID);
//So I used a foreach to create VARIABLE VARIABLES
foreach($owner as $key=>$value) {
${$key} = $value; //you get something like $name = <what is in that column>
}
我将在很多页面中使用此表单,不仅适用于所有者,还适用于客户、管理员等......这就是为什么我决定将表单放在我已经习惯的静态类中的一个函数中渲染'我会经常使用的所有 HTML(例如标题、徽标、菜单等)
//This is inside the HTMLRenderClass
renderTheEditForm() {
?>
<form>
Name: *<br/>
<input type="text" name="personalname" value="<?php if(isset($name)) echo $name; ?>"/><br/><br/>
Last Name: *<br/>
<input type="text" name="personallastname" value="<?php if(isset($lastname)) echo $lastname; ?>"/><br/><br/>
Phone Number 1:<br/>
<input type="text" name="personalphone1" value="<?php if(isset($phone1)) echo $phone1; ?>"/><br/><br/>
<!-- AND 53 FIELDS MORE -->
</form>
<?PHP
}
您在 VALUE 属性中看到的所有变量都与在 FOREACH 中动态创建的变量相同。当我将表单 HTML 代码粘贴到 Foreach 下方时,我可以看到正在加载的数据,但是当我使用 HTMLRenderClass 中的函数时,我什么也得不到……我一直无法找到原因。
我希望我解释得很好,在此先感谢!