Sc_field_display não funciona no evento ajax onclick no form

Bom dia!

A função sc_field_display não funciona no evento ajax onclick no form.

Segue o código:

// Atualização dos dados do veículo escolhido
$check_sql = "
SELECT
veiculos.codigo AS codigo,
veiculos.placa AS placa,
veiculos.valor_km AS valor_km
FROM
stakeholders
INNER JOIN veiculo_stakeholder ON veiculo_stakeholder.codigo_stakeholder = stakeholders.codigo
INNER JOIN veiculos ON veiculos.codigo = veiculo_stakeholder.codigo_veiculo
WHERE
stakeholders.codigo = ‘" . {responsavel} . "’
AND veiculos.codigo = ‘" . {veiculo} . "’
AND veiculos.codigo > 0

UNION

SELECT
tipo.valorTipo AS codigo,
‘’ AS placa,
0 AS valor_km
FROM
tipo
WHERE
tipo.tabela = ‘veiculos’
AND tipo.campo = ‘tipo’
AND tipo.ativo = 1
AND tipo.valorTipo = 0
AND tipo.valorTipo = ‘" . {veiculo} . "’

ORDER BY
codigo

LIMIT 1
";
sc_lookup(rs, $check_sql);
if (isset({rs[0][0]}))
{
{veiculo} = {rs[0][0]};
{placa_veiculo} = {rs[0][1]};
{valor_km} = {rs[0][2]};

echo {veiculo};
echo {placa_veiculo};

if({veiculo} == 0)
{
	sc_field_display({km_inicio}, 'off');
	sc_field_display({km_fim}, 'off');
	sc_field_display({placa_veiculo}, 'off');
	sc_field_display({valor_km}, 'off');
	sc_field_display({valor_rodado}, 'off');
	sc_field_display({km_rodado}, 'off');
	echo "Loop 1";
}
else
{
	sc_field_display({km_inicio}, 'on');
	sc_field_display({km_fim}, 'on');
	sc_field_display({placa_veiculo}, 'on');
    sc_field_display({valor_km}, 'on');
    sc_field_display({valor_rodado}, 'on');
	sc_field_display({km_rodado}, 'on');
	echo "Loop 2";
}

}
else
{
sc_field_display({km_inicio}, ‘off’);
sc_field_display({km_fim}, ‘off’);
sc_field_display({placa_veiculo}, ‘off’);
sc_field_display({valor_km}, ‘off’);
sc_field_display({valor_rodado}, ‘off’);
sc_field_display({km_rodado}, ‘off’);
echo “Loop 3”;

{veiculo} = 0;
{placa_veiculo} = '';
{valor_km} = 0;	

}

PARCIALMENTE RESOLVIDO!

Se um dos campos dentro do loop não estiver sendo mostrado na seleção de campos do form, NENHUM campo aparece. Por exemplo, no código acima:

sc_field_display({km_inicio}, ‘on’);
sc_field_display({km_fim}, ‘on’);
sc_field_display({placa_veiculo}, ‘on’); <<<< Este campo não está sendo mostrado no form
sc_field_display({valor_km}, ‘on’);
sc_field_display({valor_rodado}, ‘on’);
sc_field_display({km_rodado}, ‘on’);

Se retirar a linha marcada acima, resolve. Porém acredito que deveria mostrar os demais campos, independente desse campo estar ou não na lista de campos mostrados do form.

Por isso, considero que ainda há um BUG sim.

O campo onde está sendo chamada essa função ajax onclick é do tipo RADIO?

Sim, o campo é do tipo radio

E esse ELSE acima faz parte de qual IF?

Do primeiro if lá em cima no código…

É que o código que passaste ficou muito confuso. Use o code no início do código e o /code no final do código (eles devem ser declarados entre colchetes) pra ficar melhor identificado o teu código.

1 Curtida

Boa noite, irmão, tudo bem? Espero que sim.

Uma alternativa é você descobrir como o ScriptCase chama o ID destes campos clicando sobre eles na página com o botão direito e, em seguida, clicar na opção “Inspecionar elemento”, aí ele vai te mostrar o código HTML já do campo e você anota o ID dele.

Em seguida, ao invés de utilizar sc_field_display, faça o seguinte:

?>
<script type=“text/javascript”>
window.document.getElementById(“id do campo”).style = “display:none”;
</script>
<?php

Veja se assim dá certo.

Que Deus te abençoe.