SELECT DINAMICO COM ENTRADA MANUAL

Pessoal, tenho a seguinte dúvida:

Em uma aplicação tipo formulário, eu criei um campo “select” onde quero definir as opções deste manualmente. Porém, dependendo da condição do campo anterior (radio box), deverá parecer determinadas opções.

Por ex:

if ({tipo} == 1)
{
{campo_select} recebe opções Mamão, Morango e Manga
}
else
{
{campo_select} recebe opções Laranja e limão
}

OBS: NÃO SÃO DADOS VINDOS DE TABELA DE BANCO DE DADOS.

Att.

Thyago

Isso não era para ser publicado em formulários.
você tem a opção de utiliza o Ajax para carregar outro campo do formulário.

Att Arquimedes

Acho que vc não entendeu. Eu tenho um único campo tipo select. Nesse campo vc tem a opção de lookup de edição que pode ser manual ou automático. Os valores que quero informar são manuais, não vem do banco. O que eu queria saber era uma forma de inserir essas opções que colocamos no lookup e edição através de linha de código em algum dos eventos pois dependendo da opção que for escolhida no campo radio box, vai me aparecer um determinado valor.

Att.

Thyago

Criar metodo Javascript com o conteúdo:

$(’#’+id).html(htmlcode);

no mesmo criar 2 parametros : id e htmlcode


No evento Ajax - onClick do campo que será usado para a mudança.

Se for via sql pode fazer assim manualmente tem que fazer mudança no código.

   $sql = query;
$campo = "nomedocampo";
$NomeMetodo = "metodo javascript que foi criado";
    $_htmlcode='<option value="0" > Selecione o Conte&uacute;do </option>';
sc_lookup(DataSet,$sql);

$campo_ = "{".$campo."}";
$campo_ = str_replace(' ', '', $campo_); 
if ({DataSet}!==False){
	$_selected=($campo_=={DataSet[0][0]})?"Selected":"";
	$cont = count({DataSet}); 
	for($x=0;$x<$cont;$x++){
		 
		 $id		 = {DataSet[$x][0]};
		 $descricao  = {DataSet[$x][1]};	 
		 
		 $_htmlcode.='<option value="'.$id.'" '.$_selected.'>'.$descricao.'</option>';
	 }
	$_htmlcode = utf8_encode($_htmlcode); // Corrigi os campos que contem acentuação
} 
$id_sc_field = "id_sc_field_".$campo;

sc_ajax_javascript($NomeMetodo,Array($id_sc_field,$_htmlcode));

Obs. se for como estou passando no campo tem que ter pelo menos uma query basica.

Qualquer dúvida

Bom dia Fernando, obrigado pela ajuda, porém não consegui ainda. Fiz da seguinte forma:

//EVENTO AJAX ONCLICK
$campo = “campo”;
$m_javascript = “m_javascript()”;
$_htmlcode=’ Selecione o Conteúdo ';

$campo_ = “{”.$campo."}";
$selected=($campo)?“Selected”:"";
$_htmlcode.=’<option value=“1” ‘.$_selected.’>TESTE’;
$_htmlcode.=’<option value=“2” ‘.$_selected.’>TESTE2’;
$_htmlcode.=’<option value=“3” ‘.$_selected.’>TESTE3’;
$_htmlcode = utf8_encode($_htmlcode); // Corrigi os campos que contem acentuação

$id_sc_field = “id_sc_field_”.$campo;

sc_ajax_javascript($m_javascript,Array($id_sc_field,$_htmlcode));

//MÉTODO
$(’#’+id).html(htmlcode);

Onde estou errando?

Obrigado, Thyago

$m_javascript = “m_javascript()”; retira o (). e faz um teste.

Continua a não aparecer nada

Eu consegui com que aparecesse uma o valor no option porém mostra uma mensagem de erro. Abaixo, o código e a mensagem:

//MÉTODO JAVASCRIPT
document.getElementById(“id_sc_field_teste”).options[1] = new Option(“Teste”, “T”);

//EVENTO ONSCRIPTINIT
sc_ajax_javascript(m_javascript,Array(id_sc_field_teste));

MENSAGEM DE ERRO:

ERRO
Use of undefined constant m_javascript - assumed ‘m_javascript’
Use of undefined constant id_sc_field_teste - assumed ‘id_sc_field_teste’

Desde já agradeço pela atenção de todos

Alguém sabe como me ajudar?

Ainda estou com dificuldades nessa parte pessoal. Alguém tem alguma idéia?

Para que tanto JS?
Eu faria todos os selects manuais, ocultaria no form e exibiria o select correspondente ao radio clicado.

Cleyton, boa tarde!

É um radio com apenas duas opções. Dependendo da opção selecionada, o campo select abaixo, mostrará opções relativas ao que foi selecionado no radio box.

Por ex:
No campo radio, tenho as opções Fiat e Ford
Se escolher Fiat, o campo select me trará as opções para selecionar:

  • Palio
  • Uno
  • Idea
    Se escolher Ford:
  • Fiesta
  • Ka

É basicamente isso!!

Att.

Thyago

Então, faça os dois selects ocultos e ao clicar no radio FIAT vc mostra a select FIAT. Se ainda me lembro, não uso SC a bastante tempo, use a macro sc_field_display

Na verdade Cleyton, hoje está feito desta forma. Porém, em uma edição do registro ele dá erro pois um dos campos não vem do banco de dados

Pensando rapidamente…

Eu tentaria deixar o campo que guarda o dado na tabela oculto e recendo o valor da select, tanto no insert quanto no update. Acho que no onChange da select dá para fazer isso. Em todas as selects mande atualizar o valor do “campo oficial”.