2013-04-29 114 views
0

我有一个带有DIV的schema.org标记的HTML模板。 DIV内容通过PHP填充为 ,但是当我们缺少数据时,DIV内容会留空/空。目前,我们可以通过使用下面的JavaScript检查字段长度来隐藏DIV - 但是,因为它是客户端,Google的丰富数据测试工具仍然会在缺少/空内容的代码中看到schema.org标记,并且抱怨缺失数据。PHP相当于这个Javascript

所以,我需要隐藏的DIV如果是空的,服务器端在处理之前。我无法弄清楚这个Javascript检查与PHP相当。

JavaScript方法IN USE

<script> 
var inside = document.getElementById("persona"); 
if(inside.innerHTML.length < 1) { 
     document.getElementById("staffm").style.display = "none"; 
    } else { 
     document.getElementById("staffm").style.display = "block"; 
    } 
</script> 

恶劣的PHP代码,我尝试使用(VERSION 30亿的东西)

<?php 
    $div = getElementById('staffm'); 
    if (ob_get_length($div) < 1) { 
    $div->setAttribute("style", "display:none"); 
    } else { 
    die(''); 
    } 
?> 

我不认为这是隔靴搔痒正确但我真的无法找到关于这类任务的“简单”资源/帖子 - 其他问题似乎要比我需要或理解的更深,而且我迷路了。所以,任何帮助将不胜感激。

+3

这是什么?您无法访问PHP中的DOM,并且语言完全不同,用于不同的地方等等,所以PHP没有替代javascript。 – adeneo 2013-04-29 03:27:18

+0

你甚至想要做什么? – 2013-04-29 03:30:59

+0

@adeno是的,你可以在PHP中访问DOM,但无可否认,所使用的方法有点超出了我对PHP的理解,这里是一个例子[link] http://stackoverflow.com/questions/8144061/using-php-to -get-dom-element – DMSJax 2013-04-29 03:35:44

回答

4

在PHP中使用“getElementById”是无效的,因为PHP是在服务器中执行的,而不是在客户端中执行的,因此,您尝试访问客户端Web浏览器中的html对象,并使用服务器语言PHP)。我建议您了解DOM操作和Ajax,以便使用XMLHttpRequest对象“通信”Javascript和PHP。

+1

为了简单起见,'getElementById'不是*本地PHP全局函数*。 DOM遍历/修改存在无数的用户级实现(* PHPQuery想到*),其中这些函数很可能存在。 OP可能是最好的调查这样的事情。 – Dan 2013-04-29 04:09:20

+0

在上面的初步评论和一些更多的研究后,我完全放弃了这种方法,并找到了不同的途径来达到所需的结果。 - 无论如何,问题都解决了。谢谢大家对输入建设性或其他。 – DMSJax 2013-04-29 15:49:16