0

データベースからフェッチされた配列を返す関数を使用しています ( 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 を使用すると何も得られません...理由を見つけることができませんでした。

よく説明していただければ幸いです。事前に感謝します。

4

1 に答える 1

1

関数内で変数を定義するか、変数を関数に渡す必要があるようです。

于 2013-07-16T03:57:57.197 に答える