2016-02-26 28 views
0

我有这样的代码在布局/ main.php文件:如何更新页面的其他部分(使用PJAX)?

<div class="wrap"> 
<? \yii\widgets\Pjax::begin(['id' => 'nav_pjax'])?> 
<?php 
NavBar::begin([ 
    'brandLabel' => 'Название компании', 
    'brandUrl' => Yii::$app->homeUrl, 
    'options' => [ 
     'id' => 'ww', 
     'class' => 'navbar-inverse navbar-relative', 
    ], 
]); 

echo Nav::widget([ 
    'options' => ['class' => 'navbar-nav navbar-right', 'id' => 'ww'], 
    'items' => User::getMenuItemsByRoleUser(!Yii::$app->user->isGuest ? Yii::$app->user : false,Yii::$app->user->isGuest) 
]); 
NavBar::end(); 
?> 
<? \yii\widgets\Pjax::end()?> 
<div class="container" id="content_inner"> 
    <? \yii\widgets\Pjax::begin(['timeout' => '3000'])?> 
    <?= Breadcrumbs::widget([ 
     'homeLink'=>[ 
      'label' => 'Главная', // required 
      'url' => \yii\helpers\Url::home(),  // optional, will be processed by Url::to() 
     ], 
     'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], 
    ]) ?> 

    <?= $content ?> 
    <? \yii\widgets\Pjax::end()?> 
</div> 

当我点击进入导航栏链接,服务器返回的内容,我想投入DIV CLASS =“容器” ID = “content_inner”。我该怎么做?或者我应该完全刷新页面?

回答

1

你并不需要两个pjax小部件,你可以简单地尝试:

1)只更新内容

<div class="wrap"> 

     <?php /* navbar */ ?> 

     <div class="container" id="content_inner"> 
      <?php \yii\widgets\Pjax::begin([ 
       'id' => 'nav_pjax', 
       'timeout' => '3000', 
       'linkSelector' => '.navbar-nav a', // use pjax on navbar links 
      ]); ?> 

       <?php /* breadcrumb and content */ ?> 

      <?php \yii\widgets\Pjax::end(); ?> 
     </div> 

</div> 

了解更多关于linkSelector

2)更新导航栏和内容

<div class="wrap"> 
    <?php \yii\widgets\Pjax::begin([ 
     'id' => 'nav_pjax', 
     'timeout' => '3000', 
    ]); ?> 

      <?php /* navbar */ ?> 

      <div class="container" id="content_inner"> 
       <?php /* breadcrumb and content */ ?> 
      </div> 

    <?php \yii\widgets\Pjax::end(); ?> 
</div>