【问题标题】:repopulate php dynamic checkboxes from mysql DB从 mysql DB 重新填充 php 动态复选框
【发布时间】:2012-02-21 12:40:14
【问题描述】:

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

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

如果用户改天返回页面,我需要重新填充复选框。

我的想法(可能还不够好……)

SELECT preference FROM Preference table WHERE UserId=CurrentUserId

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

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

如果 $result 等于当前复选框 id 然后写 checked

但我不完全确定如何使其工作以及它是否会工作..有什么想法吗?

【问题讨论】:

  • 这是一个快速而肮脏的解决方案。这显然不是最好的,但它完成了工作。 $form = '你的 HTML 内容'; $form = str_replace("", "", $form);

标签: php mysql checkbox


【解决方案1】:

正如你所说。

  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 />";
    }
    

这样的事情应该足以重新创建布局并选择用户偏好。

【讨论】:

  • 我尝试实现你的代码,但我是初学者,我没有成功。我在这里粘贴了我的完整代码:也许你能更好地理解codepad.org/qluIjByA
猜你喜欢
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多