Php Zend Framework AjaxLink完全失败
有一个奇怪的zend框架问题。虽然这很可能是一件简单的事情,但到目前为止我还无法解决它。我已经浏览了stackOverflow和其他几个社区站点的底部,以及zend文档 我在布局中包含的任何ajaxLink都拒绝运行。它们分类正确,href属性中有hash占位符,但页面中不包含用于激活链接的javascriptPhp Zend Framework AjaxLink完全失败,php,jquery,zend-framework,Php,Jquery,Zend Framework,有一个奇怪的zend框架问题。虽然这很可能是一件简单的事情,但到目前为止我还无法解决它。我已经浏览了stackOverflow和其他几个社区站点的底部,以及zend文档 我在布局中包含的任何ajaxLink都拒绝运行。它们分类正确,href属性中有hash占位符,但页面中不包含用于激活链接的javascript echo$this->jQuery语句也失败。可能是ajaxLink故障的原因。我已验证是否在引导中正确添加了jQuery视图帮助程序。已经尝试使用这两种ZendX\u JQuery::
echo$this->jQuery布局中的代码>语句也失败。可能是ajaxLink故障的原因。我已验证是否在引导中正确添加了jQuery视图帮助程序。已经尝试使用这两种ZendX\u JQuery::enableView($view)
和$view->addHelperPath(“ZendX/JQuery/view/Helper”,“ZendX\u JQuery\u view\u Helper”)代码>方法
提前谢谢
相关文件摘录如下:
bootstrap.php:
protected function _initViewHelpers()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->doctype('HTML4_STRICT');
$view->headMeta()->appendHttpEquiv('Content-type', 'text/html;charset=utf-8')
->appendName('description', 'Business Club');
$view->headTitle()->setSeparator(' - ');
$view->headTitle('SOU Business Club');
$view->setHelperPath(APPLICATION_PATH.'/views/helpers', '');
ZendX_JQuery::enableView($view);
}
dashboardLayout.phtml:
<?php echo $this->doctype();?>
<html>
<head>
<?php echo $this->headTitle();?>
<?php echo $this->headMeta();?>
<?php
echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/dashboardStyle.css');
echo $this->headLink()->prependStylesheet($this->baseUrl().'/js/jquery/css/smoothness/jquery-ui-1.8.11.custom.css');
?>
<?php
echo $this->headScript()->appendFile($this->baseUrl().'/js/paginator.js');
echo $this->jQuery();
?>
</head>
<body id="body">
<div id="wrapper">
<div><?php include "dashboardHeader.phtml"; ?></div>
<div id="bar">
<a href="<?php echo $this->url(array('controller'=>'dashboard', 'action'=>'home'))?>">Dashboard Home</a>|
<?php
echo $this->ajaxLink('Club Roster | ',
'user/index',
array('update' => '#content',
'method' => 'post'),
array('format' => 'html')
);
?>
<a href="<?php echo $this->url(array('controller'=>'gdata', 'action'=>'index'))?>">Google Docs</a>|
<a href="<?php echo $this->url(array('controller'=>'books', 'action'=>'index'))?>">Book Sale Management</a>|
</div>
<div id="content" align="center">
<?php
echo $this->layout()->content;
?>
</div>
<div id="statusBar">
<?php
$userData = Zend_Registry::get('userData');
$name = $userData->name;
$role = $userData->role;
$status = 'Logged in as: '.' Name: '.$name.' Role: '.$role;
echo $status;
?>
<br />
<a href="<?php echo $this->url(array('controller'=>'authentication', 'action'=>'logout'))?>">Logout</a>
</div>
<div><?php include "dashboardFooter.phtml"; ?></div>
</div>
</body>
</html>
|
|
|
HTML
输出:
<head>
<title>SOU Business Club - Member Dashboard</title>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" >
<meta name="description" content="Business Club" >
<link href="/css/dashboardStyle.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/js/jquery/css/smoothness/jquery-ui-1.8.11.custom.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/css/dashboardStyle.css" media="screen" rel="stylesheet" type="text/css" >
<script type="text/javascript" src="/js/paginator.js"></script>
</head>
SOU商务俱乐部-会员仪表板
在引导过程中,您需要指定jQuery在本地计算机或CDN上的位置。您在本地使用:
$view->jQuery()->setLocalPath(PATH);
或者你可以使用一个CDN,比如谷歌的:,这实际上是我觉得这个问题很奇怪的原因之一。我已经尝试设置jquery安装的本地路径。没有区别。默认路径是谷歌CDN,所以我也尝试过。我甚至尝试过显式链接google CDN。它在显式链接时包含,但zend不会为ajaxlinks生成js。我可以自己编写js,但这会破坏使用zend库的目的。只要我在加载的视图中使用jquery帮助程序,jquery链接就会在输出的头中回响。我的数据网格已加载。它起作用了。我的解决方案是创建一个局部视图,其中填充了加载到布局中的AjaxLink,而不是作为布局本身的一部分。有没有其他方法可以避免这种奇怪的ZF特性?好吧,所以局部视图辅助程序不起作用。ZF jQuery helper仅在内容视图中直接使用时才处于活动状态。一定有办法解决这个问题