使用PHP检查元素(ID)是否已分配特定类

时间:2012-05-30 16:47:00

标签: php css class drupal element

我想在我的template.php(drupal主题)中使用以下内容:

$search_button ='search-button.png';
if($('#page-wrapper').hasClass('blue-colour')) {
    $search_button ='search-button-blue.png';
}
else if ($('#page-wrapper').hasClass('green-colour')) {
    $search_button ='search-button-green.png';
}
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/'.$search_button);

哪个不起作用,因为它是jQuery。问题是这个位的语法:

  

如果($( '#页的包装器')。hasClass( '蓝色'))

如果不使用javascript或jQuery,只使用php和/或一些Drupal函数,我怎么能做同样的事情呢?

我想根据HTML元素上设置的类替换搜索框的图标:

<div id="page-wrapper" class="blue-colour">

在这种情况下,它会检查该类是否为“蓝色”,并在变量($ search_button)上设置正确的蓝色图标。

3 个答案:

答案 0 :(得分:2)

javascript和jQuery是客户端,这意味着页面已经加载,javascript直接在客户端的计算机上运行在加载的DOM上。

PHP是服务器端,这意味着页面是由PHP在服务器上编写的,然后超文本将被传输到客户端的计算机。

根据类更改图像需要客户端代码,除非您已经知道该类。

例如,

$class = 'blue-colour';
switch ($class) {
    case 'blue-colour':
        echo '<img src="blue-colour.jpg" alt="blue-colour" />'
        break;
    default:
        echo '<img src="default.jpg" alt="default" />';
}

如何确定类取决于您的代码,但必须在页面解析期间完成。

答案 1 :(得分:2)

这不能直接回答你的问题,但你可以使用css解决这个问题:

  1. 请勿使用图片作为按钮,而是使用文字并执行text-indent: -9999em;
  2. 之类的操作
  3. 将按钮的背景图像设置为您想要的图像(简单示例):
  4.   

    .blue-colour .button {
       background: url(search-button-blue.png);
    }
    .green-colour .button {
       background: url(search-button-green.png);
    }
    

答案 2 :(得分:0)

你可以尝试使用dom解析器,虽然它会很棘手。

http://simplehtmldom.sourceforge.net/manual.htm