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
$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(); ?>