Botão ao lado de um campo que possa executar métodos PHP

Saudações pessoal,

Já vi alguns tópicos solicitando ajuda para resolver este pequeno problema: Criar um botão ao lado de um campo, que possa executar métodos PHP na aplicação.
No entanto, ainda não encontrei nenhum com um exemplo prático de como realmente fazer isso.
Alguns sugerem utilizar o campo help, outros utilizar um campo imagem html, etc.
Estou retornando a este assunto, pois estou à procura de uma solução realmente prática para este problema.
A situação é a seguinte:
Tenho uma aplicação com um método PHP e gostaria de criar (ou mover) um botão que fique ao lado de um campo (numérico, texto, etc.), que possa executar este método, que por sua vez poderá realizar algum cálculo ou buscar informações para preenchimento de um outro campo no mesmo formulário.
Gostaria de uma dica com um exemplo prático, com algum código que possa ser analisado.
Obrigado pela ajuda.

pesquise no forum que achará sugestões.

Já pesquisei bastante e não encontrei nenhum exemplo CLARO de como fazer isso.
Por isso ABRI este post novamente…

http://www.scriptcase.com.br/forum/index.php/topic,5965.0/topicseen.html

A quem interessar, resolvi o meu problema da seguinte maneira:

Meu problema:
Tenho um formulário único registro, e nele um campo numérico chamado “numero_arquivo”, o qual, para preenchê-lo, preciso sempre saber qual o próximo número
consultando o ultimo valor registrado no banco de dados, executando uma consulta SQL (SELECT MAX(num_arquivo) FROM …).

Minha Necessidade:
Para executar esta tarefa, gostaria de colocar um BOTÃO (ou algo semelhante) ao lado do campo “numero_arquivo”, para fazer a pesquisa no banco de dados e preencher o campo sempre que necessitasse.

Minha Solução:

  • Criei um campo chamado “proximo_numero_arquivo”, numérico, que fica oculto.
  • Nele criei uma função AJAX (onChange), chamada (proximo_numero_arquivo_onchange), onde coloquei o código SQL que busca o próximo numero no Banco de Dados e atualiza o campo “numero_arquivo”.
  • No HELP do campo “numero_arquivo” (tipo texto), coloquei o seguinte código:


  • Desta forma, o link apresentado é uma IMAGEM que simula um botão e executa a função que necessito.

A versão do Scriptcase que estou utilizando é a 7.01.0020.

Espero que esta solução possa servir a outros com a mesma necessidade

Muito bom Rui
Obrigado por compartilhar.

Bom a questão nesse caso é…!! Se houver várias pessoas executando a mesma rotina você terá muito provavelmente números duplicados de documentos, mas referente a sua necessidade e solução parabéns!!!

Bom dia!

Eu sei que o tópico é antigo mas gostaria de dar uma sugestão caso sirva para alguém.

No evento ScriptInit você pode alterar o css do botão, campo, label, etc com o comando abaixo.

print("
	<style type='text/css'>
	#id_sc_field_incluir_leitores{
		background: url('http://valleyforge.edu/assets/images/pagination-forward.png') no-repeat;
		border: none;
		height: 30px;
		cursor: pointer;
	}
	</style>
");

Para descobrir o “id” do campo basta visualizar o código html e inspecionar até achar o id=“id_sc_<tipo_campo>_<nome_campo>”

Obs: usei isso para transformar um campo do tipo “Texto” em “botão” e coloquei um EventoAjax OnClick nele e funcionou perfeitamente.
Espero que ajude.

Boa dica, Thiago! Obrigado por compartilhar.

valeu Thiago … muito bom !! vou usar esta dica …

Só para melhorar o código do Thiago, em vez de dar o “print” ele pode ser colocado no >> onApplicationInit desta forma:
?>

#id_sc_field_incluir_leitores{ background: url('http://valleyforge.edu/assets/images/pagination-forward.png') no-repeat; border: none; height: 30px; cursor: pointer; } <?php E não tem a chanse de aparecer a saída na tela. Abraços.

Show, Juliano!

Vou contribuir também

#id_sc_field_nome_do_campo{
background: url(’/scriptcase/app/uti_manager/_lib/img/scriptcase__NM__ico__NM__arrow2_up_blue_24.png’) no-repeat;
height: 30px;
cursor: pointer;
box-shadow: 0 0 0 0;
border: 0 none;
outline: 0;
}

Adicionando essas 3 linhas faz com que não apareça a borda do input quando clicar nele
box-shadow: 0 0 0 0;
border: 0 none;
outline: 0;

E para mostrar na versão mobile esse botão como fazer? pois não é mostrado o botão e sim o campo !