2016-12-13 50 views
0

我有一個名爲「角色」列表示這樣的人的角色「1,3,6 ..」列和表其他表與這個角色名稱。任何id都與角色重合。如何恢復檢查,而不是複選框,取決於行值1,2,5,6

我試圖將所有角色打印爲複選框,並檢查該人是否具有這些角色中的任何角色。

我正在嘗試內爆並爆炸沒有結果,你能指導我嗎?

<input type="checkbox" name="roles[]" value="'.($row['id']).'" >'.($row['name']).'</input> 
+0

哪裏是圍繞這部分代碼迴路?你使用任何模板引擎如樹枝或任何東西? implode/explode部分必須圍繞該代碼行,這就是你要求的,對吧?請提供周圍的代碼,以便SO上的人可以幫助您。 – Fuzzzzel

+0

嗨模糊,重點是我嘗試不同的東西,但沒有任何作品..我想知道什麼是最好的方式使它 – CosmicDisco

+0

我明白,但回答這個問題,你需要知道你如何創建你將返回的模板。當然,你可以使用一個循環,在爆炸你的「角色」之後遍歷數組。所以你說在你的$行 - 數組除了名稱和ID包含像「1,3,6,...」的字符串或$行「其他」表的一行的另一列?也許你可以舉一個你嘗試顯示的數據集的例子(在表格或類似的地方)。 – Fuzzzzel

回答

0

試試這個

$user_id = $_REQUEST['user_id']; 
    $user_role = array(); 
    $result = mysql_query("SELECT role_id FROM user_role where user_id = '$user_id' "); 
    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
      $user_role[] = explode(',' $row['role_id']); 
    }// end while 

    $getRoleList = mysql_query("select role_id, role_name from role "); 
    while ($roleRow = mysql_fetch_array($getRoleList, MYSQL_BOTH)) { 
       if(in_array($roleRow['role_id'], $user_role)){ 
        echo '<input type="checkbox" name="roles[]" value="'.($roleRow['role_id']).'" checked="checked">'.($roleRow['role_name']); 
       }else{ 
        echo '<input type="checkbox" name="roles[]" value="'.($roleRow['role_id']).'" >'.($roleRow['role_name']); 
       }// end if 
    }// end while