最初。 $ idはどこに定義されていますか?
秒。 Codeigniterには、$ _POSTまたは$ _GETの使用を必要としないライブラリがあります。
第3。 1人のユーザーが複数の役割を持つ必要がありますか?私はあなたの選択などを使用することをお勧めします。
<select name="role">
<option value="user">User</option>
<option value="employee">Employee</option>
<option value="admin">Admin</option>
</select>
たぶん、あなたは、オプションの値の役割のIDを使用する必要が...第四
<option value="1">User</option>
<option value="2">Employee</option>
<option value="3">Admin</option>
のようなものを。もしあなたが更新をしたいのであれば、なぜコードニターORMの更新メソッドを使わないのですか?このようにして、モデルフォルダにgeneral_model.phpというファイルを作成しました(このフォルダとMVCパターンを使用していますか?)。ORMとコントローラの間のファサードのようなものがあります。機能の一つが更新され:
public function update($tablename, $data, $where)
{
foreach($where as $key=>$value)
$this->db->where($key, $value);
$this->db->update($tablename, $data);
if ($this->db->affected_rows() >= 0) return TRUE;
else return FALSE;
}
使用例コントローラから、あなたのケースのために(ユーザーが1つのロールのみを使用して)次のようになります。
$this->general_model->update("users_role", array("role_id"=>$this->input->post("")) , array("user_id"=>$id));
私はそれはあなたを助け願っています。
PS:あなたは私がgeneral_model.php
あなたを渡すことができますしたい場合、あなたはCodeIgniterの上の役割によって権限についての詳細情報が必要な場合は、ここに私の答えを見ることができ、ユーザID –
を渡すためにUSER_ROLEを更新する必要があります:http://stackoverflow.com/questions/37126013/secure-php-functions-with-array/37126471?noredirect=1#comment61833227_37126471 –
そのクリア - あなたのコードはチェックボックスがチェックされていない場合、すべてのユーザーロールを削除します。あなたは期待している?だからあなたを悩ます唯一のことは、別のブロックを処理するelseブロックです。 – sintakonte