2014-07-07 45 views
0

我试图制作一个新闻网站(更新现有的网站,确实基于CMSMS,它有很多自动生成的代码,似乎会导致各种各样的问题。)无论如何,我更新一个模板,在那里,而不是去一个新的网站,发布简历的文章,我希望简历能够通过单击“阅读更多”按钮来隐藏div中的简历文本。我知道如何制作切换按钮等等,问题是在同一页面需要几个简历,需要自动在模板中设置的唯一ID。这个想法,我不得不与生成它们:作为HTML元素的PHP变量元素ID

<?php $firstId = uniqid(); $secondId = uniqId(); ?> 

然后,我会打电话给他们,像这样:

<div id="<?php echo $firstId; ?>" class=""> perhaps <span>here </span> or whatevs.</div> 

然后东西第二证件相似。这样做的想法是,我可以通过简单地瞄准$ firstId fx来从JS瞄准这些Div。

但是,如果我右击并检查与萤火虫的元素,我只是得到

id="<?php echo $firstId; ?>" 

代替:

id="someUniqueId" 

所以,问题是我如何得到它实际上解析代码,以便我可以通过ID调用元素?例如将其可见性设置为隐藏。

+0

你保存你的页面.PHP? –

回答

0

我最终使用了一个逐个遍历每个元素的for循环,通过它们的css类来定位它们,在这种情况下它们只是空的。

因为我有权控制每页显示多少个对象,以及完整的文章和摘要的模板,我可以使用简单的数字以确保每次都是唯一的。

脚本只是通过页面给出包含我要定位的元素的div中的所有按钮,值为0-9。 然后它给包含完整的物品的当前按钮的ID + 40导致它们从40-49

去的ID的div,然后将摘要从20-29

然后去的代码的其余部分只是标记特定的元素,最初使用按钮ID,然后减去/添加两个不同变量的值,以获得文章ID和摘要ID,然后我从那里工作。即使它有点简单,它也可以很好地工作。

的灵感来自于你的答案Fleshgrinder来了,谢谢:)

0

无法确定问题解决方案的位置,因为它是自定义软件。但问题本身很容易识别,PHP不会被解析和执行。这就是为什么你在HTML输出中看到PHP打开和关闭标记的原因。

如果你问我,使用uniqid()似乎是一个坏主意,因为你无法直接在你的JavaScript中定位任何这些元素。此外,该功能的开销是完全没有必要的。

只需使用计数器计算您用任意数字初始化的元素,然后将其与输出的每个元素一起增加。

+0

看到我自己的答案,从你最后的陈述中获得灵感。 – user3801839

0

请尝试考虑这一点。

ob_start(); 
include_once "your_html_with_php_code_file"; 
$output = ob_get_contents(); 
ob_end_clean(); 

$输出将是你需要的东西。