Evento Ajax onClick não funciona

Haroldo,

Sim. segue onRecord:

if ({IMOVEL_NEGOCIO} == '1' || {IMOVEL_NEGOCIO} == '3') {
	
	if ({IMOVEL_STATUS_NEGOCIACAO} == '1'){

		{IMOVEL_STATUS_NEGOCIACAO} = "<img src=\"../_lib/img/checked-box-vazio-24.png\" width=\"16\" height=\"16\" border=\"0\">";

	} elseif ({IMOVEL_STATUS_NEGOCIACAO} == '4') {

		{IMOVEL_STATUS_NEGOCIACAO} = "<img src=\"../_lib/img/checked-box-mark-24.png\" width=\"16\" height=\"16\" border=\"0\">";

	}
	
} elseif ({IMOVEL_NEGOCIO} == '2') {
	
	if ({IMOVEL_STATUS_NEGOCIACAO} == '1'){

		{IMOVEL_STATUS_NEGOCIACAO} = "<img src=\"../_lib/img/checked-box-vazio-24.png\" width=\"16\" height=\"16\" border=\"0\">";

	} elseif ({IMOVEL_STATUS_NEGOCIACAO} == '3') {

		{IMOVEL_STATUS_NEGOCIACAO} = "<img src=\"../_lib/img/checked-box-mark-24.png\" width=\"16\" height=\"16\" border=\"0\">";

	}
	
}

e no evento ajax onClick:

sc_select(rs, "SELECT IMOVEL_NEGOCIO, IMOVEL_STATUS_NEGOCIACAO FROM tbl_imoveis WHERE IMOVEL_ID = '".{IMOVEL_ID}."' ");

if ($rs->fields[0] == '1' || $rs->fields[0] == '3') {
	
	if ($rs->fields[1] == '1'){

		sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 4 WHERE IMOVEL_ID = {IMOVEL_ID}");

	} elseif ($rs->fields[1] == '4') {

		sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 1 WHERE IMOVEL_ID = {IMOVEL_ID}");

	}
	
		
} elseif ($rs->fields[0] == '2') {
	
	if ($rs->fields[1] == '1'){

		sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 3 WHERE IMOVEL_ID = {IMOVEL_ID}");

	} elseif ($rs->fields[1] == '3') {

		sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 1 WHERE IMOVEL_ID = {IMOVEL_ID}");

	}
	
}	

sc_ajax_refresh();

Esses scripts seguem a video aula da Camila Moreira: https://www.youtube.com/watch?v=j4mqC5rPBQA

Ah! É uma consulta. Você não tinha especificado o tipo de aplicação.

O exemplo do vídeo apresentado pela vanda não funcionou na própria apresentação?

Se sim, o problema está no seu código, não investiguei para avaliar em profundidade.

Haroldo,

Estou fazendo debug, da aplicação. Rotinas simples como essa, executa:


echo {IMOVEL_STATUS_NEGOCIACAO};
sc_ajax_refresh();

E se chamo essa, não roda e nem da output:

$sql = "SELECT IMOVEL_NEGOCIO, IMOVEL_STATUS_NEGOCIACAO FROM tbl_imoveis WHERE IMOVEL_ID = {IMOVEL_ID}";

echo $sql;

sc_ajax_refresh();

Não sei o que pode estar acontecendo.

remove o sc_ajax_refresh.

Coloca em modo debug em Aplicação/Configuração.

habilita janela output.

Haroldo,

Fiz e nada. Não estou entendendo mais nada.

que tal um sc_commit_trans() no evento onclick antes de dar o refresh?

Vou tentar e já retorno

Vou criar um exemplo aqui.

OK. Fico aguardando.

Haroldo,

Fazendo testes, verifiquei que quando existe alguma transação de banco não funciona, por exemplo:

sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 3 WHERE IMOVEL_ID = {IMOVEL_ID}");

Já desta forma, funciona:

if ({IMOVEL_NEGOCIO} == 1 || {IMOVEL_NEGOCIO} == 3) {

	if ({IMOVEL_STATUS_NEGOCIACAO} == 1){

		//sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 4 WHERE IMOVEL_ID = {IMOVEL_ID}");
		echo "Atualiza 4";

	} elseif ({IMOVEL_STATUS_NEGOCIACAO} == 4) {

		//sc_exec_sql("UPDATE tbl_imoveis SET IMOVEL_STATUS_NEGOCIACAO = 1 WHERE IMOVEL_ID = {IMOVEL_ID}");
		echo "Atualiza 1";

	}

}

Não posso realizar nenhuma transação de banco no onCLick?

pode sim executar sc_exec_sql, vou tentar simular aqui.

Leandro,

Veja se é isso que vc deseja:

http://infinitusweb.net.br/form_exemplo_grid_onclik/

*** Tem um bug no evento onclick desde sua criação, achei que tinham resolvido. O evento onclick só consegue trabalhar com as colunas do select que estão visíveis na consulta.

Esse exemplo ficou meio tosco com esse refresh aí.

Haroldo,

É isso mesmo.

Então vou ter que colocar a coluna id na consulta? Senão vai bugar…

Haroldo,

Obrigado pela ajuda. Coloquei o campo e funcionou perfeitamente.

Leandro, da uma olhada na app que fiz de exemplo agora:

http://infinitusweb.net.br/form_exemplo_grid_onclik/

Haroldo,

Ficou muito bacana.

Quais eventos você você usou nesse exemplo?

Leandro, para fazer algo tão simples, eu diria banal, tive que usar a criatividade e posso dizer que foi até um calvário fazer essa troca de imagens com ação de um evento Ajax.

Mas valeu pois aprendi um pouco mais e descobri
bugs e falhas de conceito que pelo tempo de vida do sc já deveria estar mais maduro.

Vou fazer um video explicando passo a passo.

Concordo com você.

Valeu.

Leandro os videos foram feitos:

http://www.scriptcase.com.br/forum/index.php/topic,13835.msg72223.html#msg72223

Haroldo,

valeu…