开发者

Zend Framework AjaxLink Complete Failure

Having a strange zend framework issue. Although it's most likely something simple, I've been unable to resolve it so far. I have scraped the bottom of stackOverflow and several other community sites, as well as the zend documentation.

Any ajaxLink that I include in my layout refuses to function. They are classed properly, with hash placeholder in href attribute, but the javascript to activate the link is not being included in the page .

echo $this->jQuery; statement in layout is also failing. Might be the cause of ajaxLink failure. I have verified that I am properly adding the jQuery view helper in my bootstrap. Have tried using both ZendX_JQuery::enableView($view); and $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper"); methods.

Thanks in advance

Excerpts from the relevant files follow:

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> output:

<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="sty开发者_开发百科lesheet" type="text/css" >
<script type="text/javascript" src="/js/paginator.js"></script>
</head>


In your bootstrap you need to specify where jQuery is, either on your local machine or a CDN. Locally you use:

$view->jQuery()->setLocalPath(PATH);

Or you could use a CDN such as Google's: http://code.google.com/apis/libraries/devguide.html#jquery

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜