Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Update em lote grid

12 de Agosto de 2013, 19:08 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 21 vezes

Amigos boa noite, primeiramente gostaria de parabenizar pela frame que é muito boa e tem me ajudado muito.

Sou programador delphi a 7 anos e agora estou me aventurando na linguagem php.

Gostaria de contar com a ajuda dos senhores na seguinte questão:

 Possuo uma grid  de funcionários com os campos  id_funcionario(chave checkbox), no_funcionario e matricula, fora da grid possuo um group com o campo  ds_lotação (combobox) o que eu gostaria de fazer é o seguinte:

atribuir uma lotação e selecionar, na grid (pelo checkbox id_funcionario) os funcionários que recebrão a lotação, e assim  realizar um update dos funcionários selecionados para a lotação desejada, o problema que estou encontrando é que mesmo os valores sendo apresentados na grid(a grid me retorna os funcionários e seus respectivos id's), quando faço a seleção de alguns funcionários, meu array me retorna sem valores (algo desse tipo Array ( [1] =>on,[2] =>on etc...) .

Será que alguém poderia me auxiliar? e peço desculpas desde já se minha dúvida parecer simples, pois como disse anteriormente estou iniciando a programação em php e muito motivado com essa excelente framework de desenvolvimento. 

Desde já agradeço a atenção dispensada de todos!! 

 

Autor: leandro chagas


1Um comentário

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    13 de Agosto de 2013, 15:53

     

    Leandro,

    segue abaixo o exemplo para você ter uma idéia de como implementar isso no formDin.

    Abraço.

    <?php
    $frm = new TForm('Definição de Lotação');

    // simular registros do banco de dados da tabela funcionarios
    $arrFunc['ID_FUNCIONARIO'][0] = 1;
    $arrFunc['NO_FUNCIONARIO'][0] = 'Funcionário 1';
    $arrFunc['ID_FUNCIONARIO'][1] = 2;
    $arrFunc['NO_FUNCIONARIO'][1] = 'Funcionário 2';
    $arrFunc['ID_FUNCIONARIO'][2] = 3;
    $arrFunc['NO_FUNCIONARIO'][2] = 'Funcionário 3';
    $arrFunc['ID_FUNCIONARIO'][3] = 4;
    $arrFunc['NO_FUNCIONARIO'][3] = 'Funcionário 4';

    // criar o gride de funcionarios
    $g=new TGrid('gdFunc','Funcionários',$arrFunc,null,null,'ID_FUNCIONARIO');
    $g->addCheckColumn('id_funcionario','Nome','ID_FUNCIONARIO','NO_FUNCIONARIO');
    $g->setCreateDefaultDeleteButton(false); // não criar o botão delete padrão do gride
    $g->setCreateDefaultEditButton(false); // não criar o botão alterar padrao do gride

    // criar o campo html com o gride dentro
    $frm->addHtmlField('gride_funcionario',$g);

    // simular os dados da tabela de lotação
    $arrLotacao['ID_LOTACAO'][0] = 'L1';
    $arrLotacao['NO_LOTACAO'][0] = 'Lotação 1';
    $arrLotacao['ID_LOTACAO'][1] = 'L2';
    $arrLotacao['NO_LOTACAO'][1] = 'Lotação 2';
    $arrLotacao['ID_LOTACAO'][2] = 'L3';
    $arrLotacao['NO_LOTACAO'][2] = 'Lotação 3';

    // criar o campo select com as lotações;
    $frm->addSelectField('id_lotacao','Selecione a Lotação:',false,$arrLotacao);

    // processar a ação quando clicar no botão Gravar
    //$frm->processAction(); // esta é forma aconselhada de fazer o tratamento das ações, veja nos exemplos do formDin

    // esta é a forma não aconselhada de fazer o tratamento de ações, fiz assim somente para exemplificar a gravação
    switch( $_REQUEST['formDinAcao'] )
    {
        case 'gravar_dados':

            if( !is_array($_POST['id_funcionario'] )  )
            {
                $frm->addError('Nenhum funcionário selecionado!');
                break;
            }
            if( ! $_POST['id_lotacao']  )
            {
                $frm->addError('Lotação não foi selecionada!');
                break;
            }
            // tudo ok, fazer o update no banco de dados
            echo '<h3>Resultado:</h3>';
            foreach( $_POST['id_funcionario'] as $id)
            {
                echo 'Funcionario ID:<b>'.$id.'</b> será atualizado para a lotação:<b>'.$frm->get('id_lotacao').'</b><br>';
            }
        break;
        // ---------------------------------------------------------

    }
    $frm->addButton('Gravar','gravar_dados','btnGravar');
    $frm->show();

    ?>

Essa comunidade não possui posts nesse blog