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

时间:2013-08-08 17:53:03

标签: php mysql mysqli

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

因此,如果关键字尚未添加到数据库中,则表单上的复选框将不会显示供用户选择。实现这一目标的最佳方法是什么?我的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)一个包含表单结果的完全独立的表?

我的表格代码就像这样(星期五8/9/13):

   <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>

2 个答案:

答案 0 :(得分:0)

您可以在复选框中添加name

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

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

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

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

答案 1 :(得分:0)

改变这个 -

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

到这个

echo "<input type='checkbox' id='tag_$id'>$key<br />";

这样做的原因是你只需使用数字即可消除所有字符组合。 EX的字符组合。 id =“Ava / Flight”,id =“Ava Flight”