根据用户年龄显示div

时间:2019-01-22 15:06:43

标签: javascript php html sql database

我想向某些用户显示某些DIV。为此,我在phpMyAdmin中有一列,称为“ UserType”,该列指示用户是高于还是低于18。基于此,如果用户低于18,我想隐藏ID为“ 18+”的所有DIV。这是包含产品的两个不同DIV的示例:

<div id="18+" class="content">
  <a href= "pulpfiction.html"><img src="img/2.jpg" style="width:100%"></a>
  <p>Pulp Fiction</p>
  <p>£8.90</p>
  <hr>
</div>

<div id="13+" class="content">
  <a href= "blueexorcist.html"><img src="img/blueexorcist.jpg" style="width:100%;"></a>
  <p>Blue Exorcist</p>
  <p>£8.90</p>
  <hr>
</div>

我现在正在尝试的是:

    <?php
$userQuery = mysqli_query($con, $sql="SELECT UserType FROM users;");
$user = mysqli_fetch_assoc($userQuery); //gets user data as an array
?>

<script>
function toggleDivAdult(){
    var x = document.getElementById("13+");
    var y = document.getElementById("18+");
    if ($user['UserType'] == 'M') { x.style.display = "none"; }
    else if ($user['UserType'] == 'C') { y.style.display = "none"; }
</script>

“ M”表示成熟用户,“ C”表示孩子

2 个答案:

答案 0 :(得分:4)

考虑到您正在使用phpMyAdmin和SQL,我建议您使用PHP来确定将哪个div打印到页面上。

示例:

<?php
$c = ; //your sql connection
$userQuery = mysqli_query($c, /* your query for the user */);
$user = mysqli_fetch_assoc($userQuery); //gets user data as an array
if ($user['UserType'] == '18+') { ?>
<div ...></div>
<? }
else if ($user['UserType'] == '13+') { ?>
<div ...></div>
<? }
else { /* otherwise */ }
?>

答案 1 :(得分:1)

我只需添加“ .adult”类并进行检查

forEach()方法为每个数组元素执行一次提供的函数。

call()方法调用具有给定值和单独提供的参数的函数。

[].forEach.call(document.querySelectorAll(".content"), (el) =>
{
    if (el.classList.contains("adult"))
    {
        el.style.display = "none";
    }

})
<div id="18+" class="content adult">
  <a href= "pulpfiction.html"><img src="img/2.jpg" style="width:100%"></a>
  <p>Pulp Fiction</p>
  <p>£8.90</p>
  <hr>
</div>

<div id="13+" class="content">
  <a href= "blueexorcist.html"><img src="img/blueexorcist.jpg" style="width:100%;"></a>
  <p>Blue Exorcist</p>
  <p>£8.90</p>
  <hr>
</div>