隐藏和显示取决于值

时间:2015-05-25 08:24:51

标签: javascript php show-hide

是否有人知道如何在select - 标记下隐藏和显示选项,具体取决于数据库中的某个值?

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

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

5 个答案:

答案 0 :(得分:2)

截至您的问题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修改。

答案 1 :(得分:1)

缺少报价。 $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>

答案 2 :(得分:0)

要使用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>

答案 3 :(得分:0)

试试这个: -

<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 :(得分:-1)

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

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