Passar Valores Da Gridview Para O Controller

[color="#0000FF"]Olá pessoal,

Quero enviar um array de todas as colunas da grid para uma determinada operação no controle, como se fosse um form.

Algumas colunas são editáveis, então após alterações farei a validação e update no controlle. Acho este script abaixo interessante. Alguém sabe como enviar outras colunas sem ser tipo checkbox?[/color]

Ex.:usuarios-permissao-grid_c0 usuarios-permissao-grid_c1 usuarios-permissao-grid_c2 … enviar para o controller




Yii::app()->clientScript->registerScript('operacoes', "

$('.AlterarPermissoes-Botao').click(function(){

        

        var atLeastOneIsChecked = $('input[name=\"usuarios-permissao-grid_c0[]\"]:checked').length > 0;


        if (!atLeastOneIsChecked)

        {

                alert('Por favor, selecione pelo menos um registro para alterar.');

        }

        else if (window.confirm('Deseja realmente alterar os itens selecionados?'))

        {

                document.getElementById('usuarios-permissao-search-form').action='index.php?r=usuariosPermissao/alterarpermissoes';

                document.getElementById('usuarios-permissao-search-form').submit();

        }

});

");



Obrigado galera!

André,

As outras colunas são inputs e selects?

Elas precisa está com nomes em formato de array, como é feito no checkbox. Ai você pode pegar todo os inpus, ou somente os inputs que tem os checkbox selecionado.

Posta uma imagem de como está sua grid.

Segue a view admin.php

4757

admin.php

Segue imagem:

4758

imagem1.png

André,

Só vai ter checkbox?

Tem uma wiki que ensina a colocar grupos de botão para setar status.

http://www.yiiframework.com/wiki/552/add-beautiful-radio-checkbox-buttons-to-grid/

Imagem Modelo da Grid

Newerton,

Vai ter checkbox sim, mas este não estará usando a classe [color="#0000FF"]class’=>'CCheckBoxColumn[/color] e o que eu quero na verdade é enviar todos os dados(marcados ou não)de duas ou mais colunas para um ação no controller.

André,

Pega essa linha do código que você enviou:


var atLeastOneIsChecked = $('input[name=\"usuarios-permissao-grid_c0[]\"]:checked').length > 0;

Altera ela para:


var allInput = $('#ID-da-grid input').serialize();

console.log(allInput);

Veja pelo console do Firebug ou Chrome, se está retornando todos os inputs da grid, marcados ou não marcados.

Olá Newerton,

Muito obrigado pela ajuda, através dos dados no console do chrome ficou fácil. Mudei apenas a tipo de campo no formulário.

Vlw!!!

Segue imagem como ficou:

4785

imagem1.png

Fico filé agora!