データベースからフェッチされた配列を返す関数を使用しています ( PDO::fetch(PDO::FETCH_ASSOC) )。
この関数は多くの列を返します。フォーム内のすべての列を編集しているときは、明らかに現在のデータをフィールドに入力する必要があります。
コード(質問用に変更):
//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 から Function を使用すると何も得られません...理由を見つけることができませんでした。
よく説明していただければ幸いです。事前に感謝します。