根据服务器的结果显示除法

时间:2011-08-09 11:56:15

标签: php html

如何根据来自服务器的结果显示或隐藏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

3 个答案:

答案 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,因为它不是NULLDocs - 它是一个对象。

您可以通过将输出逻辑与数据解耦来解决此问题:

$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'displayvisibility选项