0

我使用 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)一个包含表单结果的完全独立的表?

我的表单代码如下所示(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>
4

2 回答 2

0

name您可以在复选框中添加一个:

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

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

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

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

于 2013-08-08T18:10:23.503 回答
0

改变这个——

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

对此

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

这样做的原因是您只需使用数字即可消除所有字符组合。EX的角色组合。id="Ava/航班", id="Ava 航班"

于 2013-08-14T18:05:42.573 回答