[Resolvido] Colocar Cor em campo de formulário quando selecionado o tipo do status

Bom dia, poderia me ajudar?

Como faço para quando eu selecionar no campo status ativo ficar com uma cor verde e desativado com uma cor vermelha no formulário de cadastro.

Tabela notebook -> Campo -> situacao_status = Ativo - Desativado SC 9

Criar campo virtual e na onload atribuir a ele o valor do campo da tabela entre tag span com style color.

Agora se o campo for editável tem que ser via javascript/form/onload usando jquery para trocar o css do campo

1 Curtida

Obrigado pelo retorno poderia colocar exemplo?

Já fiz assim e não da nada

if({situacao_status} == “Emprestado”)
{
sc_field_style({situacao_status}, “”, “”, “#FF0000”, “”, “”);

}
if({situacao_status} == “Devolvido”)
{
sc_field_style({situacao_status}, “”, “”, “#00FF00”, “”, “”);
}

e coloquei no javascript e nada

Se for um formulário ou controle coloque esse código no Evento OnLoad, e selecione as
cores desejadas na função, ela é uma função JavaScript pura.

echo "
<script type='text/javascript'>

function TarjetaCOR_JS(Campo, Cor) {

	var Campo = 'id_sc_field_' + Campo.toLowerCase();

	switch (Cor) {

		case 'ROXO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#6500CC';
			break;

		case 'VERDE ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#003300';
			break;

		case 'ROSA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF00FF';
			break;

		case 'BRANCO':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFFFFF';
			break;

		case 'LARANJA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF6500';
			break;

		case 'VERMELHO ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#800000';
			break;

		case 'VERDE CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#008000';
			break;

		case 'MARROM':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#993300';
			break;

		case 'CINZA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#808080';
			break;

		case 'AMARELO':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFFF00';
			break;

		case 'PRETO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#000000';
			break;

		case 'VERMELHO CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF0000';
			break;

		case 'BEGE':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFCC99';
			break;

		case 'AZUL ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#000080';
			break;

		case 'AZUL CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#3365FF';
			break;

		default:
			// VERDE CLARO
			var Cor_Texto =  'white';
			var Cor_Fundo = '#008000';

	} // switch (Cor)

	document.getElementById(Campo).style.color = Cor_Texto;
	document.getElementById(Campo).style.fontWeight = 'bold';
	document.getElementById(Campo).style.backgroundColor = Cor_Fundo;

} // function TarjetaCOR_JS(Campo, Cor)

</script>";

if ({situacao_status} == 'Emprestado') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERMELHO CLARO')");	
}

if ({situacao_status} == 'Devolvido') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERDE CLARO')");		
}

Observação usado no Scriptcase 9.6

2 Curtidas

Boa Tarde adicionei no onload e não funcionou o campo ainda fica coma cor padrão.

Tenho que alterar algo aqui
Me desculpe pois sou novo nisto e aprendendo
echo "

function TarjetaCOR_JS(campo, Cor) { var campo = 'id_sc_field_' + campo.toLowerCase();

Não o único local para alterar é aqui que é o nome do seu campo no formulário, na rotina que esta dentro do < script > não mexe em nada.

if ({situacao_status} == 'Emprestado') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERMELHO CLARO')");	
}

if ({situacao_status} == 'Devolvido') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERDE CLARO')");		
}

E qual a versão do seu Scriptcase?

9.6. Scriptcase

Coloquei da forma que informou. No onload dentro do form

Cola aqui uma print-screen dos campos da sua tela, mostrando o nome deste campo situacao_status, e coloca todo o código OnLoad que você colocou, copia e cola o código aqui no forum entre [ code ] [ /code] para ele aparecer correto para eu pode checar o que você esta fazendo errado.
image

Segue conforme solicitado.


```
echo "
<script type='text/javascript'>

function TarjetaCOR_JS(Campo, Cor) {

	var Campo = 'id_sc_field_' + Campo.toLowerCase();

	switch (Cor) {

		case 'ROXO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#6500CC';
			break;

		case 'VERDE ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#003300';
			break;

		case 'ROSA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF00FF';
			break;

		case 'BRANCO':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFFFFF';
			break;

		case 'LARANJA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF6500';
			break;

		case 'VERMELHO ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#800000';
			break;

		case 'VERDE CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#008000';
			break;

		case 'MARROM':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#993300';
			break;

		case 'CINZA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#808080';
			break;

		case 'AMARELO':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFFF00';
			break;

		case 'PRETO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#000000';
			break;

		case 'VERMELHO CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF0000';
			break;

		case 'BEGE':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFCC99';
			break;

		case 'AZUL ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#000080';
			break;

		case 'AZUL CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#3365FF';
			break;

		default:
			// VERDE CLARO
			var Cor_Texto =  'white';
			var Cor_Fundo = '#008000';

	} // switch (Cor)

	document.getElementById(Campo).style.color = Cor_Texto;
	document.getElementById(Campo).style.fontWeight = 'bold';
	document.getElementById(Campo).style.backgroundColor = Cor_Fundo;

} // function TarjetaCOR_JS(Campo, Cor)

</script>";

if ({situacao_status} == 'Emprestado') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERMELHO CLARO')");	
}

if ({situacao_status} == 'Devolvido') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERDE CLARO')");		
}
```

imagecampo

Apague todos os dados do seu OnLoad e faça um teste para ver se a função sc_ajax_javascript,
esta funcionando, cole isso no OnLoad:

{situacao_status} = 'teste';

$_Comando_JS = "alert('Teste JS = ".{situacao_status}."')";

sc_ajax_javascript($_Comando_JS);

Aqui no meu teste veja como funciona:

Ficou assim o meuteste1

Ok então apague tudo novamente do OnLoad e cole esse código sem mexer em nada:

echo "
<script type='text/javascript'>

function TarjetaCOR_JS(Campo, Cor) {

	var Campo = 'id_sc_field_' + Campo.toLowerCase();

	switch (Cor) {

		case 'ROXO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#6500CC';
			break;

		case 'VERDE ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#003300';
			break;

		case 'ROSA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF00FF';
			break;

		case 'BRANCO':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFFFFF';
			break;

		case 'LARANJA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF6500';
			break;

		case 'VERMELHO ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#800000';
			break;

		case 'VERDE CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#008000';
			break;

		case 'MARROM':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#993300';
			break;

		case 'CINZA':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#808080';
			break;

		case 'AMARELO':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFFF00';
			break;

		case 'PRETO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#000000';
			break;

		case 'VERMELHO CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#FF0000';
			break;

		case 'BEGE':
			var Cor_Texto =  'black';
			var Cor_Fundo = '#FFCC99';
			break;

		case 'AZUL ESCURO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#000080';
			break;

		case 'AZUL CLARO':
			var Cor_Texto =  'white';
			var Cor_Fundo = '#3365FF';
			break;

		default:
			// VERDE CLARO
			var Cor_Texto =  'white';
			var Cor_Fundo = '#008000';

	} // switch (Cor)

	document.getElementById(Campo).style.color = Cor_Texto;
	document.getElementById(Campo).style.fontWeight = 'bold';
	document.getElementById(Campo).style.backgroundColor = Cor_Fundo;

} // function TarjetaCOR_JS(Campo, Cor)

</script>";

sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERDE CLARO')");

if ({situacao_status} == 'Emprestado') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERMELHO CLARO')");	
}

if ({situacao_status} == 'Devolvido') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERDE CLARO')");		
}

Vi que seu campo é um SELECT, ai até mudei aqui no meu teste para ver, e funciona normal também.

Ficou tudo verde mesmo selecionando outrodev

gijunior se sabe que eu gosto de você?

No seu Texto esta escrito tudo em Maísculo DEVOLVIDO na rotina eu Coloquei Devolvido
então é só alterar o seu if na rotina para ficar igual ao Texto que você digitou no Select:

if ({situacao_status} == 'EMPRESTADO') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERMELHO CLARO')");	
}

if ({situacao_status} == 'DEVOLVIDO') {
	sc_ajax_javascript("TarjetaCOR_JS('situacao_status', 'VERDE CLARO')");		
}

Nossa realmente perdão não me atentei a isto. Deixa eu mudar

Fiz estas alterações e ficou do mesmo jeito.

";

sc_ajax_javascript(“TarjetaCOR_JS(‘situacao_status’, ‘VERDE CLARO’)”);

if ({situacao_status} == ‘EMPRESTADO’) {
sc_ajax_javascript(“TarjetaCOR_JS(‘situacao_status’, ‘VERMELHO CLARO’)”);
}

if ({situacao_status} == ‘DEVOLVIDO’) {
sc_ajax_javascript(“TarjetaCOR_JS(‘situacao_status’, ‘VERDE CLARO’)”);
}