LL
Como enviar uma variável na ação(TAction) de um botão?
Estou desenvolvendo um sistema de currículos, na página vagaDetalhesAdmin (Mostra os detalhes de uma vaga) existe um botão chamado "Editar Vaga" que direciona o usuário para uma nova página de edição, o que eu quero é enviar o "Id" da vaga via URL para que as informações da vaga sejam carregadas na página de edição.
Tentei fazer assim:
Mas não funciona!
Tentei fazer assim:
- <?php
- $action_edit = new TAction(['CriarVagaAdmin', 'onEdit']);
- $action_edit->setParameter('id', $this->vagaId);
-
- $bt_editarVaga = TButton::create('bt_editarVaga', $action_edit, 'Editar Vaga', 'fa:edit green');
- ?>
Mas não funciona!
Rodando o seu código apresenta o erro abaixo:
"Método AdiantiControlTAction::__construct deve receber um parâmetro do tipo Callback
Verifique se a ação () existe"
Veja a função create da classe TButton:
O segundo parâmetro deve ser um callback e não um TAction. Seu código ficaria assim:
Show, vou testar. Me diga uma coisa nesse caso quero criar apenas um BOTÃO que da acesso a outra página, "CriarVagaAdmin" (e que execute o método "onEdit"), devo criar um formulário só para adicionar esse botão? Ou posso criar e usar ele sem usar um formulário?
Outra dúvida que tenho é em relação a adicionar os campos num formulário, existem três funções, $form->add($campo), $form->addFiel($campo) e $form->setField($campo), qual a diferença?
Os botões precisam estar vinculados a um form, pois o objetivo principal deles é "postar" as informações desse form.
Veja o link abaixo, tem outras opções que não exigem form:
adianti.com.br/framework_files/tutor/index.php?class=TextLinkView
Sobre as funções:
$form->add - não sei se já chegou a trabalhar diretamente com a classe TForm, ela é basicamente um container "form" que permite uma maior liberdade na criação de um formulário/interface. Essa função add adicionaria um componente/container na tela para visualização. Obs: pouco usado hoje em dia.
$form->addField - registra o campo informado por parâmetro como um campo do formulário.
$form->setFields - mesma coisa que a anterior, mas permite que seja informado um array de campos
Muito Obrigado Nataniel!!!