Drupal视图标题PHP代码不能使用支持AJAX的视图

Drupal视图标题PHP代码不能使用支持AJAX的视图,php,ajax,drupal,drupal-7,drupal-views,Php,Ajax,Drupal,Drupal 7,Drupal Views,我在视图头中有一些自定义PHP代码,可以根据URL加载不同的图像。视图在初始加载时运行良好,但只要我在启用AJAX的情况下更改任何过滤选项,标题就会消失。示例代码: $req = $_SERVER['REQUEST_URI']; if (preg_match("/TEXT-IM-LOOKING-FOR/", $req)) { ...HTML HERE... } 我用dpm()打印$req来检查URI,它返回了我在字符串中查找的文本,由于某种原因,它无法重新加载头。如果由于某种原因无法执行此操

我在视图头中有一些自定义PHP代码,可以根据URL加载不同的图像。视图在初始加载时运行良好,但只要我在启用AJAX的情况下更改任何过滤选项,标题就会消失。示例代码:

$req = $_SERVER['REQUEST_URI'];
if (preg_match("/TEXT-IM-LOOKING-FOR/", $req))
{
 ...HTML HERE...
}

我用dpm()打印$req来检查URI,它返回了我在字符串中查找的文本,由于某种原因,它无法重新加载头。如果由于某种原因无法执行此操作,是否有任何方法可以保留标题并仅重新加载视图的主体

将HTTP头放在模板/视图中几乎从来都不是一个好主意,原因与您引用的完全相同。切换到AJAX(在drupal中)似乎会更改(可能会删除)发送的标题


相反,您应该尝试在代码到达模板/视图之前将其放入控制器。

谢谢,不使用AJAX并不是什么大不了的事,但它会困扰我:)我会看看我能想出什么办法来实现这个方向。我最终使用了类似的代码,但将其放入了自定义模块中。如果将代码放在函数MYMODULE_views_pre_view(&$view,&$display_id,&$args)中,AJAX不会影响视图标题。再次感谢@ian的帮助。