Campo select dinamico

Bom dia!

tenho uma aplicação tipo Grid editavel view, com um campo select que em seu sql recebe na where uma global mas o scriptcase não aceita.

Alguma sugestão?

Tentei fazer via on load record com o seguinte código.

//------------------------------------------------------------------
$option = ‘’;

sc_select(meus_dados, "
SELECT B.id_contato,B.nome
FROM lg_empresa_contato A
INNER JOIN tb_contatos B on B.id_contato = A.id_contato
WHERE A.id_empresa = “.[gbl_empresa].”
");
if ( {meus_dados} === false ) {

echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

} else {

while ( !{meus_dados}->EOF ) {

$cod = {meus_dados}->fields[0];
$contato = {meus_dados}->fields[1];
  
$option .= "<option value='$cod'>$contato</option>"; 

{meus_dados}->MoveNext();

}

{meus_dados}->Close();

}

echo <<<HTML

HTML;
//---------------------------------------------------------

mas dá erro de sql

Bom dia,

Coloque o teu comando SQL dentro de uma variável, mais ou menos assim:

$cSql = "SELECT B.id_contato,B.nome
FROM lg_empresa_contato A
INNER JOIN tb_contatos B on B.id_contato = A.id_contato
WHERE A.id_empresa = “.[gbl_empresa];

sc_select(meus_dados,$cSql);

if ......

Veja se dá certo dessa forma e reporte.

tentei e não funcionou continua com o mesmo erro, acho que o problema esta no campo

Mostre aqui como ficou teu código e dê um echo na variável $cSql, copie e cole no gerenciador do teu banco de dados e execute. Se o problema estiver no sql, você vai ver.

ele esta dando um echo no código não pode.

Tem que escrever dinamicamente com jquery no elemento do campo tipo select.

Precisam se habituar a pesquisar no forum antes de postar uma dúvida:

https://forum.scriptcase.com.br/search?q=select%20dinamico

Eu vi o fórum e fiz exatamente como estava lá

$option = ‘’;

$sql_contatos="
SELECT B.id_contato,B.nome
FROM lg_empresa_contato A
INNER JOIN tb_contatos B on B.id_contato = A.id_contato
WHERE A.id_empresa = “.[gbl_empresa].”
";

sc_select(meus_dados, $sql_contatos);
if ( {meus_dados} === false ) {

echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

} else {

while ( !{meus_dados}->EOF ) {

$cod = {meus_dados}->fields[0];
$contato = {meus_dados}->fields[1];
  
$option .= "<option value='$cod'>$contato</option>"; 

{meus_dados}->MoveNext();

}

{meus_dados}->Close();

}

echo <<<HTML
< script>
$(document).ready(function(){
$("#id_sc_field_id_contato_1").html("$option");
});
< /script>
HTML;
porém não está carregando as opções do campo

Mas então não está mais dando erro no sql, como postaste no primeiro tópico?

estava dando um erro de sql no campo, mas não esta mais, porém não esta carregando as opções

então atribua sempre código entre [code] e [/code]

para que visualizemos o código corretamente.

obrigado pela dica vou me policiar

$option = '<option></option>'; 

$sql_contatos="
	SELECT B.id_contato,B.nome
		FROM lg_empresa_contato A
		INNER JOIN tb_contatos B on B.id_contato = A.id_contato
	WHERE A.id_empresa = ".[gbl_empresa]."
";


sc_select(meus_dados, $sql_contatos);
if ( {meus_dados} === false ) {

  echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

} else {

  while ( !{meus_dados}->EOF ) {

    $cod = {meus_dados}->fields[0];
	$contato = {meus_dados}->fields[1];
	  
	$option .= "<option value='".$cod."'>".$contato."</option>"; 
    
	{meus_dados}->MoveNext();

  }

  {meus_dados}->Close();

}

?>
   <script> 
       $(document).ready(function(){ 
                $("#id_sc_field_id_contato_1").html("<?php echo $option;?>"); 
       }); 
 </script> 
<?php 

Em qual evento vc está atribuindo esse código?

eu trocaria:

?>
   <script> 
       $(document).ready(function(){ 
                $("#id_sc_field_id_contato_1").html("<?php echo $option;?>"); 
       }); 
 </script> 
<?php 

por

sc_ajax_javascript("#id_sc_field_id_contato_1",[$option]);

onde id_contato_1 é o nome do campo scriptcase do tipo select

estou atribuindo no onload record, sim esse é o id do campo

Obrigado Haroldo e Kleyber, resolvi de outra forma.