Yii Framework Forum: Como carregar Dropdown diânico no Update - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Como carregar Dropdown diânico no Update Como carregar Dropdown diânico no Update Rate Topic: -----

#21 User is offline   Mateus Padovani 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 01-February 13

Posted 04 February 2013 - 11:49 AM

Desculpa sou novo utilizando esse framework, estou tentando fazer algo bem simples de escolher o estado e aparecer a cidade no combo box. Copiei o codigo dessa pagina: http://www.yiiframew...ndent-dropdown.

Porem o combo box não atualiza, gostaria de alguma ajuda, eu apenas alterei uma linha.

$data=Cidade::model()->findAll("id_est='1'");
$data=CHtml::listData($data,'id','cidade');

Na pagina my, eu quando entra nela eu percebi que os options estão sendo criados.
0

#22 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 803
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 04 February 2013 - 02:41 PM

View PostMateus Padovani, on 04 February 2013 - 11:49 AM, said:

Desculpa sou novo utilizando esse framework, estou tentando fazer algo bem simples de escolher o estado e aparecer a cidade no combo box. Copiei o codigo dessa pagina: http://www.yiiframew...ndent-dropdown.

Porem o combo box não atualiza, gostaria de alguma ajuda, eu apenas alterei uma linha.

$data=Cidade::model()->findAll("id_est='1'");
$data=CHtml::listData($data,'id','cidade');

Na pagina my, eu quando entra nela eu percebi que os options estão sendo criados.

Mateus,

Posta seu dropDownList() e o Controller que é usado para gerar os dados.
Newerton Vargas de Araújo
0

#23 User is offline   Mateus Padovani 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 01-February 13

Posted 06 February 2013 - 07:54 AM

View PostNewerton, on 04 February 2013 - 02:41 PM, said:

Mateus,

Posta seu dropDownList() e o Controller que é usado para gerar os dados.



Cara, eu acabei optando por usar JQuery puro, sem utilizar o yii.
Ai apareceu outro problema, acabou ficando certinho meu código e funcionando.
Porem percebi que esta ocorrendo algum problema no jquery, tenho um Jquery aberto no Main.php.
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/plugins/jquery-1.7.min.js"></script> 

não sei por qual razão o layout esta funcionando, mais os outros códigos jquery não. Observação: Testei com outro jquery aberto, o layout para de funcionar e meu código funciona
0

#24 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 803
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 11 February 2013 - 08:52 PM

Mateus,

Provavelmente esta rodando 2 jquery com versões diferentes. Quando esta usando qualquer componente do Yii, automaticamente ele carrega o jquery nativo no framework.

Mais usa a opção da wiki que vai da certo.
Newerton Vargas de Araújo
0

#25 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 216
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 11 March 2014 - 01:11 PM

View PostNewerton, on 04 February 2013 - 02:41 PM, said:

Mateus,

Posta seu dropDownList() e o Controller que é usado para gerar os dados.


Amigos o que fiz de errado que o meu dropDownList não carrega. Seguindo a sugestão do Newerton fiz assim:
_model
class setorsub extends CActiveRecord {

    public static function listSubSetores($idsetor) {
        $setores = array();

        $models = self::model()->findAll('setor=:setor ORDER BY nome ASC', array(':setor' => $idsetor));
        foreach ($models as $model) {
            $setores[$model->idsetorsub] = $withName ? $model->nome : $model->nome;
        }
        return $setores;
    }
}

_Controller

    public function actionSubsetor() {
        $subs = setorsub::model()->findAll('setor = :setor', array(':parent' => $_POST['idsetores']));
        $subs = CHtml::listData($subs, 'idsetorsub', 'nome');

        echo CHtml::tag('option', array('value' => ''), CHtml::encode('Selecione'), true);
        foreach ($subs as $value => $name) {
            echo CHtml::tag('option', array('value' => $value), $name, true);
        }
    }

_form

                                <div class="control-group">                                    
                                    <div class="controls">
                                        <?php echo $form->labelEx($model, 'destino'); ?>
                                        <?php
                                        echo $form->dropDownList($model, 'destino', setores::listSetores(), array('class' => 'span12', 'empty' => ' ', 'title' => 'Selecione o Setor',
                                            'ajax' => array(
                                                'type' => 'POST', //request type
                                                //'dataType' => 'json',
                                                'url' => Yii::app()->createUrl('setorsub/subsetor'),
                                                'success' => 'function(data){$("select#ocorrencias_setorsub").html(data);}',
                                                'data' => array('destino' => 'js:$(this).val()')
                                        )));
                                        ?>
                                        <?php echo $form->error($model, 'destino'); ?>
                                    </div>
                                </div>
                                <div class="control-group">                                    
                                    <div class="controls">
                                        <?php echo $form->labelEx($model, 'setorsub'); ?>
                                        <?php echo $form->dropDownList($model, 'setorsub', CHtml::listData(setorsub::listSubSetores($model->destino), 'idsetorsub', 'nome'), array('class' => 'span12', 'empty' => ' ', 'title' => 'Selecione o Setor')); ?>
                                        <?php echo $form->error($model, 'setorsub'); ?>
                                    </div>
                                </div>  



Como isso todos os setores são mostrados, porém os SubSetores nada aparecem. Como posso resolver isto??Posted ImagePosted Image
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#26 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 216
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 11 March 2014 - 03:05 PM

View PostAdrian Lucas, on 11 March 2014 - 01:11 PM, said:

Amigos o que fiz de errado que o meu dropDownList não carrega. Seguindo a sugestão do Newerton fiz assim:
_model
class setorsub extends CActiveRecord {

    public static function listSubSetores($idsetor) {
        $setores = array();

        $models = self::model()->findAll('setor=:setor ORDER BY nome ASC', array(':setor' => $idsetor));
        foreach ($models as $model) {
            $setores[$model->idsetorsub] = $withName ? $model->nome : $model->nome;
        }
        return $setores;
    }
}

_Controller

    public function actionSubsetor() {
        $subs = setorsub::model()->findAll('setor = :setor', array(':parent' => $_POST['idsetores']));
        $subs = CHtml::listData($subs, 'idsetorsub', 'nome');

        echo CHtml::tag('option', array('value' => ''), CHtml::encode('Selecione'), true);
        foreach ($subs as $value => $name) {
            echo CHtml::tag('option', array('value' => $value), $name, true);
        }
    }

_form

                                <div class="control-group">                                    
                                    <div class="controls">
                                        <?php echo $form->labelEx($model, 'destino'); ?>
                                        <?php
                                        echo $form->dropDownList($model, 'destino', setores::listSetores(), array('class' => 'span12', 'empty' => ' ', 'title' => 'Selecione o Setor',
                                            'ajax' => array(
                                                'type' => 'POST', //request type
                                                //'dataType' => 'json',
                                                'url' => Yii::app()->createUrl('setorsub/subsetor'),
                                                'success' => 'function(data){$("select#ocorrencias_setorsub").html(data);}',
                                                'data' => array('destino' => 'js:$(this).val()')
                                        )));
                                        ?>
                                        <?php echo $form->error($model, 'destino'); ?>
                                    </div>
                                </div>
                                <div class="control-group">                                    
                                    <div class="controls">
                                        <?php echo $form->labelEx($model, 'setorsub'); ?>
                                        <?php echo $form->dropDownList($model, 'setorsub', CHtml::listData(setorsub::listSubSetores($model->destino), 'idsetorsub', 'nome'), array('class' => 'span12', 'empty' => ' ', 'title' => 'Selecione o Setor')); ?>
                                        <?php echo $form->error($model, 'setorsub'); ?>
                                    </div>
                                </div>  



Como isso todos os setores são mostrados, porém os SubSetores nada aparecem. Como posso resolver isto??Posted ImagePosted Image

Amigos estou utilizando o bootstrap, quando escolho um setor, nada acontece, a aplicação não informa nenhum erro. Simplesmente fica parada e não muda nada. Alguem tem alguma idéia.
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#27 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 216
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 12 March 2014 - 09:15 AM

View PostNewerton, on 04 February 2013 - 02:41 PM, said:

Mateus,

Posta seu dropDownList() e o Controller que é usado para gerar os dados.

Amigos,
Consegui autalizar a combo de subSetor, mais quando envio o campo vai nulo. Segue abaixo:
_VIEW

<?php
 echo $form->dropDownList($model, 'destino', setores::listSetores(), array('class' => 'span12', 'empty' => ' ', 'title' => 'Selecione o Setor',
'ajax' => array(
'type' => 'POST', //request type                                                
'url' => CController::createUrl('ocorrencias/subsetor'),
'update' => '#setorsub',
'data' => array('destino' => 'js:this.value'),
)));
echo CHtml::dropDownList('setorsub', '', array(), array('class' => 'span12', 'prompt' => ''));
?>


_CONTROLLER

    public function actionSubsetor() {
        $data = setorsub::model()->findAll('setor=:parent_id ORDER BY nome ASC', array(':parent_id' => (int) $_POST['destino']));

        $data = CHtml::listData($data, 'idsetorsub', 'nome');
        foreach ($data as $value => $name) {
            echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);            
        }
    }

Como falei a combo carrega perfeitamente, porém quando adiciono ao BD o campo setorsub vai null. Alguém pode por favor me ajudar..
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

#28 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 803
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 13 March 2014 - 10:47 PM

Quando você envia para 'ocorrencias/subsetor' vai nulo?

Muda de:
'data' => array('destino' => 'js:this.value'),


Para:
'data' => array('destino' => 'js:$(this).val()'),


E também verifica se o ID do outro select é #setorsub.
Newerton Vargas de Araújo
0

#29 User is offline   Adrian Lucas 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 216
  • Joined: 13-October 11
  • Location:João Pessoa - Paraíba

Posted 14 March 2014 - 06:51 AM

View PostNewerton, on 13 March 2014 - 10:47 PM, said:

Quando você envia para 'ocorrencias/subsetor' vai nulo?

Muda de:
'data' => array('destino' => 'js:this.value'),


Para:
'data' => array('destino' => 'js:$(this).val()'),


E também verifica se o ID do outro select é #setorsub.


Valeu Newerton, resolvido!!!!!!Posted Image
Adrian Lucas
A fé em Deus nos faz crer no incrível,
ver o invisível e realizar o impossível.

0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users