2009-06-07 9 views
0

私は現在、PHPアプリケーション内でアクセス許可を設定するためにチェックボックスを使用しています。ユーザー管理ページで、ユーザーがデータベースで1または0で定義された権限を持っている場合は、チェックボックスをオンまたはオフにします。 下のボックスにチェックするかどうかをチェックするために使用されているコードです:変数が再定義されていますか?

<div><input type="checkbox" tabindex="1" name="permission[$app]" value="1" <? if ($currentperms['newapp'] = "1") {echo " checked ";}?> />New Application</label></div> 

興味深いことに、データベースに設定されているものに従って、この行の前に、echo($currentperms['newapp'])は、0を与えるただしは、この後、 echo($currentperms['newapp'])は1を返し、変数が変更されたことを示します。

これにはどのような理由が考えられますか?

私はコードをテストしました。これらの行は変数を再定義しており、スクリプトの完成を妨げています。機能のテストはできません。

私がチェックしたこと$currentperms['newapp'] = "0"

アレイ([ユーザーID] => 1 [ptodo] => 1 [usercp] => 1 [午後] => 1 [バグ] => 1 [abug] 1 = [1] [newapp] => 1 [newapp] => 0)

答えて

3

私は=がphpの代入演算子だと信じています。等価演算子である==を使用する必要があります。二重==値を比較しながら

<? if ($currentperms['newapp'] == "1") {echo " checked ";}?> 
+0

です。それが理由です。ありがとう:) – bear

1

単一に

<? if ($currentperms['newapp'] = "1") {echo " checked ";}?> 

から試験を変更してみてください=、値を割り当てます。 ==を使う必要があります。

また、あなたは自己終了入力を持っているので、xhtml 1.0 strictをやっていると思います。

適切なxhtmlマークアップは<input type="checkbox" checked="checked">です。あなたのコードは<input type="checkbox" checked>を出力します。

+0

私は、ありがとうとありました。私はすぐに変更を行います:) – bear

関連する問題