0

テーブルの行にいくつかの一連のフォーム フィールドがあるとします: f1、f2、f3。g1、g2、g3; h1、h2、h3など

ここで、これらのシリーズのいずれかのフィールド値と一致する可能性のある PHP セッション変数にユーザー名が格納されているとします。ここで、一致する可能性のあるフィールド値は、f1(echo $row['pers1Name'])、g1(echo $row['user1Name'])、または h1(echo $row['manage1Name']) です。

セッションユーザーに関連するフィールドのみが編集可能になるように、フォームをロックダウンする必要があります。他のすべては読み取り専用である必要があります。たとえば、セッションのユーザー名 == $row['pers1Name'] の場合、f2、f3 は編集可能ですが、g1-g3、h1-h3 は編集できないようにするにはどうすればよいでしょうか? ループの仕事のように思えますが、私の試みは部分的にしか成功していません.

for($i=1; $i<=6; $i++)
 {
   if($_SESSION['userName'] != $row['pers'.$i.'Name'])
   {
     $readonly = ' readonly';
   }
 }

ここでの明らかな問題は、一致が見つかったとしても、他の値が一致せず、$readonly をエコーするすべてのフィールドがロックされることです。少なくとも、私は正しい軌道に乗っていますか?

4

2 に答える 2

1

キーとして値を配列に格納でき$row['pers'.$i.'Name']ます-

for($i=1; $i<=6; $i++){
   if($_SESSION['userName'] != $row['pers'.$i.'Name'])
   {
     $readonly[$row['pers'.$i.'Name']] = ' readonly';
   }
   else {
     $readonly[$row['pers'.$i.'Name']] = '';
   }
}
于 2013-11-05T14:11:42.560 に答える
0

$readonly を再初期化する必要があります。

    for($i=1; $i<=6; $i++)
     {
       $readonly ='';
       if($_SESSION['userName'] != $row['pers'.$i.'Name'])
       {
         $readonly = ' readonly';
       }
     }
于 2013-11-05T14:11:13.713 に答える