2012-02-21 49 views
0

動態複選框我使用一個循環來創建動態複選框描述here重新填充的PHP從MySQL數據庫

一切正常,我已經成功地創建一個表2列:用戶名和偏好。 每個複選框都有一個唯一的首選值相關聯,如果它被選中,那麼PHP將它存儲在一個mysql數據庫中。

現在我需要重新填充複選框,如果用戶在另一天返回頁面。

我的想法(也許還不夠好。)

SELECT preference FROM Preference table WHERE UserId=CurrentUserId

,我可以調用query result ---> $result[]

現在,我得到一個變量的某個用戶的所有喜好,我可以做創建動態複選框時帶有IF條件的循環:

IF $result等於當前複選框ID,然後寫入checked

但我不完全確定如何使其工作,如果它會工作..任何想法?

+0

這是一個快速和骯髒的解決方案。這顯然不是最好的,但它完成了工作。 $ form ='您的HTML內容'; $ form = str_replace(「」,「「,$ form); – qsheets 2012-02-21 04:18:56

回答

2

完全如您所說。

  1. 從當前在線用戶的數據庫獲取偏好設置($clientId)。

    $query = "SELECT preference FROM Preference WHERE userId = $clientId"; 
    $res = sql_query($query, $connection); 
    while($userPreference = mysql_fetch_array($res)) 
        $userPreferences[$userPreference] = true; 
    

    我將假設他們有一個唯一的標識符preference

  2. 迭代所有首選項,從數據庫中檢查所選的$userPreferences

    foreach($preferences as $preference) { 
        $checked = $userPreferences[$preference] ? 'checked' : ''; 
        echo "<input type='checkbox' value='{$preference}' $checked />"; 
    } 
    

像這樣的東西應該足以重新佈局,並選擇用戶首選項。

+0

我試圖實現你的代碼,但我是一個初學者,我沒有成功..我在這裏粘貼我的完整代碼:也許你可以更好地理解http://codepad.org/qluIjByA – 2012-02-22 16:45:13