【问题标题】:how to populate a drop down list and save it to your database?如何填充下拉列表并将其保存到数据库中?
【发布时间】:2012-12-06 16:10:51
【问题描述】:

我想填充一个情绪下拉列表并将其保存到我的数据库中并带有时间戳。同时将情绪与当前用户联系起来。我应该如何处理这个?

在我的数据库中,我有一个名为“checkin”的表,其中包括:ID、时间、FKMoods(情绪列表的外键)和 FKUsers(用户的外键)。

现在我在“page.php”中有一个名为 checkin 的表单:

<form id="checkin" action="checkin/checkin.php" method="POST">
<label for="checkinMood">Select your current mood :</label>
<select id="checkinMood" class="SelectMood"></select><br />
<input type="submit" id="checkin-button" value="Update!" />

【问题讨论】:

  • 你卡在哪里了?您面临的问题是什么?
  • 您最好的选择是 1) 使用 PHP 操作创建一个 HTML 表单 - 就像您所做的那样,2) 您的 PHP 操作 (checkin/checkin.php) 将 3) 读取 POST 变量并4) 更新数据库。
  • @needhelp:你尝试了哪些方法?
  • 我已经尝试过这个教程:aleixcortadellas.com/main/2009/02/13/277 但我也想要一个时间戳

标签: php javascript html mysql


【解决方案1】:

完成此任务的步骤

  1. Select 情绪表中的情绪
  2. Loop 通过结果并将它们放入选择输入中
  3. 提交后,update 给定的心情进入用户表

【讨论】:

    【解决方案2】:

    不要将 html 选项列表保存到数据库中。当您想更改选项时,编辑起来太难了。像这样存储一个情绪列表:

    CREATE table moods
    mood_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    mood VARCHAR(45);
    

    要制作选项列表,请查询情绪表并在结果中循环创建选项:

    <option value='{$mood["mood_id"}'>{$mood["mood"]}</option>
    

    要存储用户的心情,请将users 表更新为mood_id

    【讨论】:

      【解决方案3】:

      首先执行一个连接的 sql 查询以从其他表中提取外键值/行 - 假设您使用的是 mysql - 使用每个人都知道的非常基本的功能(不涉及您使用的是 mysqli 还是任何 pdo 或 lib):

      SELECT * FROM checkin c LEFT JOIN listofmoods lm ON c.FKMoods = lm.FKMoods LEFT JOIN listofusers lu ON c.FKUsers = lu.FKUsers ORDER BY c.ID ASC
      

      (或者你想排序)

      现在您获得了所需的所有字段。然后运行 ​​mysql fetch 来创建列表,类似于:

      $query=mysql_query(-thequery listed above-);
      
      while($fetch=mysql_fetch_assoc($query))
      {
      
         $moodselect.='<option value="'.$fetch['FKMoods'].'">'.$fetch['whateverfieldlabelthemoodnameyouhaveonmoodstable'].'</option>';
      
      
      }
      

      这会弹出一个带有必要选项的 $moodselect。然后,您可以将其推入示例中的选择中。

      您可能必须在表单的某个隐藏字段中输入用户 ID。或者,如果您的用户系统从会话中自动识别用户,您可以在表单发布到 checkin.php 时使用它。

      【讨论】:

        猜你喜欢
        • 2014-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 2014-12-25
        相关资源
        最近更新 更多