从mysql DB重新填充php动态复选框

时间:2012-02-21 03:38:53

标签: php mysql checkbox

我正在使用循环创建动态复选框,如here

所述

一切都按预期工作,我已经成功创建了一个包含2列的表:userid和preferences。 每个复选框都有一个唯一的优先级值关联,如果选中它,则php将其存储在mysql数据库中。

现在我需要重新填充复选框,如果用户在另一天回到页面上。

我的想法(可能不够好......)

SELECT preference FROM Preference table WHERE UserId=CurrentUserId

我可以拨打query result ---> $result[]

现在我获得了变量中某个用户的所有首选项,并且在创建动态复选框时我可以使用IF条件进行循环:

如果$result等于当前的复选框ID,则写入checked

但我不完全确定如何使它工作,如果它能工作......任何想法?

1 个答案:

答案 0 :(得分: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 />";
    }
    
  3. 这样的事情应该足以重新创建布局并选择用户偏好。