Yii Framework Forum: Dropdownlist Criado Dinamicamente - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Dropdownlist Criado Dinamicamente JQRelcopy Rate Topic: -----

#1 User is offline   nickezaro 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 22-August 12

Posted 30 October 2012 - 02:47 PM

Oi
Eu estou usando o 'ext.jqrelcopy.JQRelcopy' pra poder adicionar campos dinamicamente no meu form.
O problema eh que eu não consigo reproduzir um form que possui uma dropDownList, porque eu não sei oq colocar no lugar do $model.

codigo do form
    <?php if (empty($datacomida)):
        ?>
        <div class="linha copy">


            .......................................................
            <div class="linha">
                <label class="required"> <?php echo CHtml::encode('Comida '); ?><span class="required">*</span> </label>
                <?php
                $listaComida = Comida::model()->findAll();
                $list = CHtml::listData($listaComida, 'id', 'nome');
                echo $form->dropDownList(??????????, 'id_comida', $list);
                ?>  
                <?php echo $form->error(??????????, 'id_comida'); ?>
            </div>
             <div class="linha">
                <label class="required"> <?php echo CHtml::encode('Quantidade '); ?><span class="required">*</span> </label>
                <?php echo CHtml::textField('PromocaoComida[quantidade][]'); ?>    
            </div>


        </div>
        .......................................................
        <br> </br>
        <a id="add_comida" href="#" rel=".copy">Outra Comida</a>

    <?php else: ?>
        <?php
        $idx = 0;
        $countcomida = count($datacomida);
        foreach ($datacomida as $comida):
            $copyClass = ($idx == $countcomida - 1) ? ' copy' : '';
            ?>
            <div class="linha<?php echo $copyClass; ?>">
                <div class="linha copy">

                    <div class="linha">
                        <label class="required"> <?php echo CHtml::encode('Comida '); ?><span class="required">*</span> </label>
                        <?php
                        $listaComida = Comida::model()->findAll();
                        $list = CHtml::listData($listaComida, 'id', 'nome');
                        echo $form->dropDownList(??????????, 'id_comida', $list);
                        ?>  
                        <?php echo $form->error(??????????, 'id_comida'); ?>
                    </div>
                    <div class="linha">
                        <label class="required"> <?php echo CHtml::encode('Quantidade '); ?><span class="required">*</span> </label>
                        <?php echo CHtml::textField('PromocaoComida[quantidade][]', $comida->quantidade); ?>    
                    </div>
                </div>

                <a class="nocopy" onclick="$(this).parent().remove(); return false;" href="#"><?php echo $removeText; ?></a>

            </div>
            <?php
            $idx++;
        endforeach;
        ?>

    <?php endif; ?>

    <?php
    $removeText = 'Remover';

    $this->Widget('ext.jqrelcopy.JQRelcopy', array(
        'id' => 'add_bebida',
        'removeText' => $removeText,
        'options' => array('excludeSelector' => '.nocopy'),
    ));
    ?>


controller
    public function actionCreate() {
        $model = new Promocao;

        if (isset($_POST['Promocao'], $_POST['PromocaoComida'], $_POST['PromocaoBebida'])) {
            $model->attributes = $_POST['Promocao'];
            
            if ($model->save()) {
                if ($this->saveComidas($_POST['PromocaoComida'], $model->id)) {
                        
            $this->redirect(array('view', 'id' => $model->id));
                    }else{
                        //erro
                    }
            }else{
                //erro
            }
                
            $this->redirect(array('index'));
        }

        $this->render('create', array(
            'model' => $model,
        ));
    }


funcao saveComidas
    public function saveComidas($formData, $id) {
        if (empty($formData))
            return;

        $result = array();
        $idx = 0;
        
        foreach ($formData['quantidade'] as $quantidade) {
            $model = new PromocaoComida;
             $model->quantidade = $quantidade;
            $model->id_promocao = $id;
            $model->id_comida = $formData['id_comida'][$idx];

            if (!$model->save())
                return false;

            $idx++;
            
        }
        return true;
    }


valeu :P
0

#2 User is offline   Newerton 

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

Posted 30 October 2012 - 06:27 PM

nickezaro,

No seu formulário ta usando o CActiveForm? Se não tiver usando não precisa usar o $form->.

Pode criar usando o CHtml::dropDownList().
http://www.yiiframew...DownList-detail
Newerton Vargas de Araújo
0

#3 User is offline   nickezaro 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 22-August 12

Posted 31 October 2012 - 11:25 AM

View PostNewerton, on 30 October 2012 - 06:27 PM, said:

nickezaro,

No seu formulário ta usando o CActiveForm? Se não tiver usando não precisa usar o $form->.

Pode criar usando o CHtml::dropDownList().
http://www.yiiframew...DownList-detail



sim estou usando ele
0

#4 User is offline   nickezaro 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 22-August 12

Posted 31 October 2012 - 11:30 AM

CHtml::dropDownList('PromocaoBebida[id_bebida][]', 'id_bebida', $list);
coloquei no lugar do $form-> e nao apareceu o campo
0

#5 User is offline   nickezaro 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 22-August 12

Posted 31 October 2012 - 12:16 PM

View PostNewerton, on 30 October 2012 - 06:27 PM, said:

nickezaro,

No seu formulário ta usando o CActiveForm? Se não tiver usando não precisa usar o $form->.

Pode criar usando o CHtml::dropDownList().
http://www.yiiframew...DownList-detail


Funcionou.. meu problema agora esta.. se eu remover o campo comida ou o campo bebida ele nao salva no banco de dados..
0

#6 User is offline   Newerton 

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

Posted 31 October 2012 - 06:03 PM

nickezaro,

Como assim remover?
Se você remover os campos, com certeza eles não irão salvar no banco de dados.

Adiciona o print_r() depois da seguinte condição:

[...]
if (isset($_POST['Promocao'], $_POST['PromocaoComida'], $_POST['PromocaoBebida'])) {
    echo '<pre>';
    print_r($_POST);
    exit();
[...]


Ai você vai verificar quais campos estão indo ou não.
Newerton Vargas de Araújo
0

#7 User is offline   Lothor 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 147
  • Joined: 05-August 11
  • Location:Brazil

Posted 01 November 2012 - 02:08 PM

Esconda os campos ao invés de removê-los.
0

Share this topic:


Page 1 of 1
  • 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