是否有人知道如何在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>
答案 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
优点是:
答案 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();
})