2012-02-21 50 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