如何根据来自服务器的结果显示或隐藏div,在处理请求的文件中,我从db获取客户对象,具体取决于用户请求,如果我没有找到我想要的相应客户隐藏div。
这是我的PHP代码
$customer=getCustomerViaCellPhone($link,$cellPhoneNo);
if(!$customer){
$error = 'No result found';
}
这是视图
<div id="customerInfo" class="<?php (is_null($customer))?'hide':''?>">
....
</div>
但它在两种情况下都显示了div
答案 0 :(得分:3)
您在示例中缺少命令echo
,因此它应该是:
<div id="customerInfo" class="<?php echo (is_null($customer))?'hide':''?>">
....
</div>
显然你的css还需要定义一个名为.hide
的类,其中包含display:hidden;
。
答案 1 :(得分:1)
根据您的评论,$customer
不 NULL
,它是一个包含NULL
值的对象。对于is_null($customer)
检查,这将返回false,因为它不是NULL
Docs - 它是一个对象。
您可以通过将输出逻辑与数据解耦来解决此问题:
$customer=getCustomerViaCellPhone($link,$cellPhoneNo);
$hideCustomerInfo = false;
if(!$customer) {
$error = 'No result found';
$hideCustomerInfo = true;
}
然后在视图中:
<div id="customerInfo" class="<?php echo $hideCustomerInfo ? 'hide' : ''; ?>">
....
</div>
如果这不起作用,您可以验证控制器中已有的$hideCustomerInfo
标志,看它是否包含您期望的值。此外,这简化了您的观点。
接下来确保你的CSS也是正确的,以便用这样的类来隐藏HTML元素。
答案 2 :(得分:0)
<div id="customerInfo" style="display:<?php echo (is_null($customer))?'none':'block'?>">
查看css'display和visibility选项