【问题标题】:Hide and Show depending on value根据值隐藏和显示
【发布时间】:2015-05-25 08:24:50
【问题描述】:

有谁知道如何根据数据库中的某个值隐藏和显示select-tag 下的选项?

这是我所做的,但它不起作用:

<script>
    var a = <?php echo $row["status"]; ?>
    if(a == 'To be check' || a == 'Endorsed By IT') {
        $("#new").show();
    } else
        $("#new").hide();   
    </script>

这是#new下面的内容:

<div id="new">
    <select name="status">
        <option value="Request">Request</option>
        <option value="Upload">Upload</option>
    </select>
</div>

【问题讨论】:

  • 将您的脚本代码包装在文档就绪处理程序中。 $(document).ready(function() { });
  • 试试 var a = ''
  • 你需要 jQuery
  • 在您的问题中,您要求根据值在 select 标记内隐藏或显示 options,但在您的代码中,您隐藏或显示整个 div 元素有一个 select 元素作为子元素。你到底想要什么?关于您的问题,您是否收到任何日志错误?你加载 jQuery 了吗?

标签: javascript php show-hide


【解决方案1】:

关于您的问题b0s3 has the answer。除此之外,我会推荐一种不同的方法来处理这个问题:

尝试在渲染时修改 HTML 标记,而不是更改 JavaScript:

<div id="new" <?print ( in_array($row["status"], array('To be check', 'Endorsed By IT')) ? 'class="active"' : ''); ?>
    […]
</div>

您可以使用如下 CSS 类:

#new { display: none; }
#new.active { display: block; }

您仍然可以稍后使用以下方法更改可见性:

document.getElementById('new').classList.toggle('active'); // vanilla JS
$('#new').toggleClass('active'); // jQuery

优点是:

  • 如果您的页面加载缓慢(无论出于何种原因),该元素会立即隐藏并且对用户不可见。
  • JavaScript 代码可以与您的模板分开保存和维护,因为它不必由 PHP 修改。

【讨论】:

  • 不需要 jquery。 PHPcss 将完成所有工作。 +1。
【解决方案2】:

缺少引号。 $row["status"] 包含字符串。您应该正确添加引号。

<script>
    var a = '<?php echo $row["status"]; ?>'; // missing the quotes here
    if(a == 'To be check' || a == 'Endorsed By IT')
    {
        $("#new").show();
    }
    else
        $("#new").hide();

</script>

【讨论】:

    【解决方案3】:

    要使用 javascript 显示/隐藏 div,你可以这样写:

    <script>
            var a = '<?php echo $row["status"]; ?>';
            if(a == 'To be check' || a == 'Endorsed By IT')
            {
                document.getElementById(new).style.display = 'block';
            }
            else
                document.getElementById(new).style.display = 'none';
    
        </script>
    

    【讨论】:

      【解决方案4】:

      试试这个:-

      <script>
       var a = '<?php echo $row["status"]; ?>';
       if(a == 'To be check' || a == 'Endorsed By IT')
       {
       document.getElementById("new").style.display = 'block';
       }
       else
       {
       document.getElementById("new").style.display = 'none';
       }
       </script>
      

      【讨论】:

        【解决方案5】:

        我猜你需要在文档就绪方法中写入条件

        $( document ).ready(function() {
        var a = '<?php echo $row["status"]; ?>'; // missing the quotes here
            if(a == 'To be check')
             {
                 $("#new").show();
             }
             else
                 $("#new").hide();
        })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-04
          • 1970-01-01
          • 2017-01-31
          • 2013-04-17
          相关资源
          最近更新 更多