Question

I am trying to put in the content of a wizard form of yiibooster a widget, but i can't make it work. The idea is the customer to have a step by step form, selecting in each content some data.

The widget is this:

$this->widget(
'bootstrap.widgets.TbWizard',
array(
    'type' => 'tabs', // 'tabs' or 'pills'
    'pagerContent' => '<div style="float:right">
                <input type="button" class="btn button-next" name="next" value="Siguiente" />
            </div>
            <div style="float:left">
                <input type="button" class="btn button-previous" name="previous" value="Atrás" />
            </div>
            <br /><br />',
    'options' => array(
        'nextSelector' => '.button-next',
        'previousSelector' => '.button-previous',
        'onTabShow' => 'js:function(tab, navigation, index) {
                    var $total = navigation.find("li").length;
                    var $current = index+1;
                    var $percent = ($current/$total) * 100;
                    $("#wizard-bar > .bar").css({width:$percent+"%"});
        }',
        'onTabClick' => 'js:function(tab, navigation, index) {alert("Tab Click Disabled");return false;}',
    ),
    'tabs' => array(
        array(
            'label' => 'Arrendatarios',
            'content' => 'Home Content',
            'active' => true
        ),
        array('label' => 'Inmuebles', 'content' => 'Profile Content'),
        array('label' => 'Fecha', 'content' => 'Messages Content'),
    ),
)

);

An I want in each 'content' tab something like this:

$this->widget('bootstrap.widgets.TbGridView',
            array(
            'id'=>'arrendatario',
            'selectableRows'=>1,
            'selectionChanged'=>'obtenerArrendatario',
            'type'=>'striped bordered condensed',
            'dataProvider'=>$arrendatarios->search(),
                'filter' => $arrendatarios,
            'template'=>"{items}\n{pager}",
            'columns'=>array(       
                array('name'=>'arrendatario_id_personal', 'header'=>'DNI',),
                array('name'=>'arrendatario_nombre', 'header'=>'Nombre'),
                array('name'=>'arrendatario_email', 'header'=>'Email'),   
            ),
        ));

Can anyone help me?

Thanks!

Était-ce utile?

La solution

Yes you can do this like.
First make views which contain Cgridview or anything u want. for example u have made 3 view files named _form_basic,_form_location,_form_officialUse. Now you can render them as given below.

 $this->widget('bootstrap.widgets.TbWizard', array(
    'type' => 'pills', // 'tabs' or 'pills'
            'options' => array(
                    //'onTabShow' => 'js:function(tab, navigation, index) { if((index+1) > 1) {alert("Tab #" + (index+1));} }',
                    'onTabClick' => 'js:function(tab, navigation, index) {return false;}',
            ),
            'tabs' => array(
                array('label' => 'Basic Information', 'content' => $this->renderPartial('pages/_form_basic', array('model' => $model, 'form' => $form), true), 'active' => true),
                array('label' => 'Residential Information', 'content' => $this->renderPartial('pages/_form_location', array('model' => $model, 'form' => $form), true)),
                array('label' => 'Official Information', 'content' => $this->renderPartial('pages/_form_officialUse', array('model' => $model, 'form' => $form), true)),
            ),
        )
        );

Do anything u want in the pages like CgridView or anything else u want.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top