php - 将数据库中的关键字显示为复选框选项

标签 php mysql mysqli

我使用 mysqli 创建了一个数据库,并将关键字存储在名为“Keywords”的表中。我需要使用存储在该表中的关键字以复选框的形式在表单上显示为选项。

因此,如果关键字尚未添加到数据库中,则表单上的复选框将不会显示以供用户选择。实现这一目标的最佳方法是什么?我的 SQL 知识很基础,但我可以了解查询的外观。只是不确定如何将它们显示为复选框。

更新更新更新! 我能够让我的数组显示带有复选框:这是我所做的:

<?php
include 'db.php'; 

$sql = mysqli_query($con,"SELECT * FROM addKeywordTable ORDER BY Keyword_Name ASC");

print <<<HERE
HERE;

while ($row = mysqli_fetch_array($sql))
{
$key = $row['Keyword_Name'];
$id = $row["keyID"];

print <<<HERE
<input type="checkbox" id="$key">$key<br />
   HERE;
}
?>

现在我的问题是:如何将检查的值传递到我的新表(profileTable),一个包含表单结果的完全独立的表?

我的表单代码如下所示(2013 年 8 月 9 日星期五):

   <div id="form1profile">
       <form method="post" enctype="multipart/form-data" name="addProfile" id="addProfile" >
     <fieldset>
       <legend>Add/Create a Media Source Profile</legend>
    <br>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
   <th ><label>First Name</label></th>
    <td><input name="FName" type="text" id="FName" size="40"></td>
     </tr>
 <tr>
  <th >Middle Name</th>
  <td><input name="MName" type="text" id="MName" size="40"></td>
</tr>
<tr>
  <th ><label>Last<br>
    Name</label></th>
  <td><input name="LName" type="text" id="LName" size="40"></td>
</tr>
<tr>
  <th><label>Prefix</label></th>
  <td><input name="Prefix" type="text" id="Prefix" size="40"></td>
</tr>
<tr>
  <th><label>Title
  </label></th>
  <td><input name="Title" type="text" id="Title" size="40"></td>
</tr>
<tr>
  <th><label>Dept</label></th>
  <td><input name="Dept" type="text" id="Dept" size="40"></td>
</tr>
<tr>
  <th><label>Phone</label></th>
  <td><input name="PH1" type="text" id="PH1" size="40"></td>
</tr>
<tr>
  <th><label>Other Phone</label></th>
  <td><input name="PH2" type="text" id="PH2" size="40"></td>
</tr>
<tr>
  <th><label>Email</label></th>
  <td><input name="Email" type="text" id="Email" size="40"></td>
</tr>
<tr>
  <th><label for="ProfileImg">Photo</label></th>
  <td><input name="ProfileImg" type="file" multiple id="ProfileImg" form="addProfile">
   </td>
     </tr>
    <tr>
    <th valign="top"><label class="biotextTitle">Bio/Info</label></th>
     <td><textarea name="bioLinks" cols="55" rows="25" id="bioLinks" placeholder="Paste Bio/Links here..."></textarea></td>
   </tr>
      <tr>
        <th><label class="Keywords">Keyword</label></th>
     <td>
    <?php include 'db.php'; 

         $sql = mysqli_query($con,"SELECT * FROM addKeywordTable ORDER BY Keyword_Name ASC");

         foreach ($_POST['keyword'] as $keyword) {
               if ($keyword) {
            // $keyword is a selected keyword
          }
        } 

         while ($row = mysqli_fetch_array($sql))
          {
         $key = $row['Keyword_Name'];
         $id = $row["keyID"];


         print <<<HERE
          <input type="checkbox" name="keyword[$key]" id="$key">$key<br />
         HERE;
          }
       ?> 
         </td>
      </tr>
   <tr>
     <th><label class="tags">Tags</label></th>
       <td><input name="Tags" type="text" id="Tags" size="40"></td>
   </tr>
   <tr>
     <th><input name="SaveBtn" type="submit" id="SaveBtn" formaction="insertProfile.php" formmethod="POST" value="Save"></th>
        <td></td>
          </tr>
            </table>
         <br />
      </fieldset>
    </form>
   </div>

最佳答案

您可以在复选框中添加名称:

<input type="checkbox" name="keyword[$key]" value="1">$key<br />

这样做,当页面提交时,您只需迭代选定的关键字:

foreach ($_POST['keyword'] as $keyword) {
    if ($keyword) {
        // $keyword is a selected keyword
    }
} 

之后您可以获得所有选定的关键字,然后您只需将它们插入到表格中即可。

关于php - 将数据库中的关键字显示为复选框选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132723/

相关文章:

javascript - 关于在注销字段中存储当前日期和时间

搜索后不显示数据库中的php数据

php - 在 mysql php 中查找年份高点和年份低点

c# - 插入新记录时 MySQL 的 Subsonic 3.0.0.4 ActiveRecord 模板错误

php - 无法找到PHP为MySQL错误号定义

php - 为什么忽略 MYSQLI_CLIENT_FOUND_ROWS?

php - 支付网关 ACH 集成,在 TESTMODE 上的 PHP 中出现错误 "INVALID MERCH OR PASSWD"

php - 从 Paypal IPN 接收错误 "Invalid Host header"

MySQL 工作台扩展属性?

php - 使用 MYSQLi 访问在 PHP 中准备好的语句之后插入的对象的 ID