首页 > 解决方案 > 用php显示选项数据并隐藏类似

问题描述

我正在使用 php 从我的数据库中选择数据。我在 HTML 选择选项标签中显示它。我有 100 多个选项,我想隐藏与我选择的数据相同的选项。例如:

<select class="form-control" id="type" name="type" required>
    <option selected value='<?php echo $type; ?>'><?php echo $type; ?></option> // for example $type == "c"
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
</select>

例如,$type 变量是“c”。所以它显示选项“c”两次。如果我有 100 多个选项值,如何轻松隐藏我需要的那个?

标签: javascriptphphtml

解决方案


使用 JavaScript 和 jQuery 手动删除所有重复的选项标签

let values = []
$("option").each((index, item) => {
  let { value } = item //item.value is the value of our current option in the loop
  
  // check if value is already in values array
  if(values.includes(value)) {
    // delete duplicate from the DOM
    item.remove()
  } else {
    // push value to values array so that duplicates can be detected later on
    values.push(value)
  }
})

console.log(values)
<select class="form-control" id="type" name="type" required>
    <option selected value="c">c</option>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
</select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

替代解决方案

如果您给定的选项 a、b、c、d 始终相同,您可以在您的 PHP 代码中设置一个“黑名单”,并且仅在 html 选项元素不在此黑名单中时才回显该选项元素。这对您来说是一个可能的解决方案吗?


推荐阅读