获取并显示所选标记作为所选标记,并在select元素中重新映射标记


fetch and show selected tags as selected and remaing tags in select element

我在mysql数据库中有以下三个表。

博客表格
id,标题,内容,创建,修改,活动

标签表格
id,标签名称

blog_tag表格
id、tag_id、blog_id

我想从这些表中获取数据,并显示在表单的select元素中。还将选定数据显示为选定数据,将剩余数据显示为select的选项。像这样。

<select name="tags_id[]" multiple="multiple">
<option value="id" selected="selected">tag name</option>
<option value="id" selected="selected">tag name</option>
<option value="id">tag name</option>
<option value="id">tag name</option>
<option value="id" selected="selected">tag name</option>
<option value="id">tag name</option>
</select>

我使用了php和mysql。如何连接和检索该条件的数据,以及什么将是循环条件。

您可以这样做:

<option value="id" <?php echo ($tag =='tag name' ? 'selected' : '') ?>>
tag name</option>

从数据库中获取值,对它们进行迭代。。。并检查id是否匹配。。选择该值,否则在不添加所选关键字的情况下回显该值。希望这能给你一个主意。

 <?php  $actualValues= // get the from database ?>
 <select name="tags_id[]" multiple="multiple">
 <?php 
  foreach($tableRows as $row){
  if($row['id']== $actualValue[$i])
   echo "<optionvalue'".$actualValue[$i]."' selected='selected'>$row['value']</option>";
   else
      echo "<optionvalue'".$actualValue[$i]."'>$actualValue['value']</option>";
 $i++;
 ?>
 </select>

试试这个。这段代码从标签表中获取所有标签名称,并显示在选择框中。

<select name="tags_id" multiple="multiple">
  <?php
  $result=mysql_query("select id,tag_name from tag");
  while ($row = mysql_fetch_array($result)) { 
    if ($_GET['tags_id']==$row["id"]) {
      echo '<option selected="selected" value='.$row["id"].'>'.$row["tag_name "].'</option>';
    } else {
      echo '<option value='.$row["id"].'>'.$row["tag_name "].'</option>';
    }
  }
  ?>
</select>