This extension works in similar fashion to CTabView, but is intended to be used inside a form. This extension adds a single hidden field in wich value's is stored the actual selected tab. So, in our controller we can ask for that field to know the actual selected tab.
Resources ¶
Documentation ¶
Requirements ¶
- Yii 1.0.3 or above
Installation ¶
- Extract the release file under
protected/extensions
Usage ¶
The usage is the same of the CTabView, except that we must specify the name of the hidden field (or model/attribute):
In our view:
<div class="yiiForm">
<?php echo CHtml::form(); ?>
<?php echo CHtml::errorSummary($someModel); ?>
<div class="simple">
<?php echo CHtml::activeLabelEx($someModel,'attr1'); ?>
<?php echo CHtml::activeTextField($someModel,'attr1'); ?>
</div>
<div class="simple">
<?php echo CHtml::activeLabelEx($someModel,'attr2'); ?>
<?php echo CHtml::activeTextField($someModel,'attr2'); ?>
</div>
<?php
$Tabs = array(...);
$viewData = array(...);
$this->widget(
'application.extensions.ActiveTabView.EActiveTabView',
array(
'tabs'=>$Tabs,
'viewData'=>$viewData,
'model'=>$someModel,
'attribute'=>'attr3'
));
// OR
$this->widget(
'application.extensions.ActiveTabView.EActiveTabView',
array(
'tabs'=>$Tabs,
'viewData'=>$viewData,
'name'=>'someName'
));
?>
<div class="action">
<?php echo CHtml::submitButton(); ?>
</div>
<?php echo CHtml::closeTag('form'); ?>
</div><!-- yiiForm -->
So in our controller we can do the following:
public function actionUpdate()
{
$someModel=new SomeModel;
if(isset($_POST['SomeModel']))
{
// In the case that we specify model/attribute.
$someModel->attributes=$_POST['SomeModel'];
// $someModel->attr3 has the ID of the actual selected tab
// OR, in the case that we specify the name.
$selectedTab = $_POST['someName'];
// $selectedTab has the ID of the actual selected tab
// do ther stuff
}
// render view, etc,etc
}
Change Log ¶
March 27, 2009 ¶
- Initial release.
User Contributed Notes 2
not work
I haste. Selected tab is ok, but not work changing tabs.
???
Thanks
That is exactly what I'm looking for
Leave a comment
If you have any questions, please ask in the forum instead.
Join the conversation to share a note.