Obter valor que esta mostrado em campo select

Como posso pegar o valor que esta sendo mostrado no campo select e nao o ID dele?

Agostinho,

Abaixo um exemplo

// VERIFICA ULTIMO LOG
sc_lookup(dataset5, “select log_data,log_hora from seg_logs where log_seq = (select max(log_seq)
from seg_logs where usuario_id = ‘[var_usuario]’ and usuario_seq = ‘[var_usuario_seq]’)”);

if (FALSE === {dataset5})
{
sc_error_message(“Erro no acesso da tabela de Logs do usuario!” . {dataset5_erro});
return;
}

if (empty({dataset5}))
{
$var_acesso = ‘Este é seu primeiro acesso’;
}else{
$var_data_log = {dataset5[0][0]};
$var_hora_log = {dataset5[0][1]};
$data = explode(’ ‘,$var_data_log);
$resul = explode("-",$data[0]);
$var_data_log = $resul[2].’/’.$resul[1].’/’.$resul[0];
$var_acesso = 'Seu último acesso foi em ‘.$var_data_log.’, '.$var_hora_log;
}

George Carvalho

vou testar e lhe retorno se deu certo, obrigado pela atenção

Não deu certo, porque eu nao tenho o a dataset usado na consulta, a consulta nao é feita com sc-lookup, mesmo assim obrigado.

Agostinho,

No evento onRecord da consulta você pode incluir o sc_lookup acessando a base de dados.

George Carvalho

Sim poderia, e até funciona, mas veja por outro angulo, se eu ja tenho o valor, porque devo ir buscar ele de novo no banco de dados?

Obrigado pelo atenção.

Não estou entendo bem o problema, poderia exemplicar mais detalhado?

George Carvalho

Bom Dia,

Se bem entendi o problema é o seguinte:

Existe um campo com o tipo de dados SELECT e nele está sendo armazendo o código ao invés da descrição… correto?

Sendo isto a solução é você colocar um comando select parecido com este abaixo:

SELECT nomedocampo FROM minhatabela

Por padrão é desta forma, se você deseja, por exemplo, armazenar um código e mostrar uma descrição é só colocar separado por vírgula.
SELECT codigo,nome FROM minhatabela

Espero ter ajudado.

Rodrigo Lins.

Ou Agostinho, entendi sua dúvida e penso da mesma forma, tinha que ter uma maneira mais “inteligente”, porque se eu tenho o valor já sendo exibido na tela, pra que eu vou pegar o ID e ir de novo da tabela pra pegar o que já ta no select.

Tinha que ter uma forma de pegar o que está sendo exibido ao invés de ficar gastando banda e enviando mais requisições pro banco.

Claro que tem o problema do valor estar no client-side e a gente estar querendo usar o valor no server-side, mas deve ter alguma forma de mandar uma variável javascript pro PHP, sei lá…

Se alguém tiver uma ideia dá uma luz ae, por favor…

Acho que entendi, pois tenho algo com essa necessidade.

veja bem. se fizer um lookup será retornado o ID.
EX.
lookup(ds,“select fornecedor from…”)

$retorno = {ds[0][0]}; isso vai voltar o ID.

como resolvo isso… no campo que preciso pegar a string eu faço o lookup dentro dele e depois pego o {fornecedor}. aó sim vc pega a string…

veja meu código. nele preciso mandar dados para uma tabela de movimento financeiro… logo lá só posso mandar a string pois eu mando fornecedor, funcionario, nota fiscal…pro mesmo campo entao nao tenho como fazer um lookup lá…

[code]{data_cheque}= sc_date_conv({data_cheque},“dd/mm/aaaa”,“db_format”);
/**

  • Registra o movimento financeiro
    */
    sc_lookup(ds,“SELECT
    sequencial,
    valor_parcela
    FROM
    dbo.autoriza_pagamento
    WHERE status = ‘1’ AND
    sequencial = ‘{ap}’”);

$sequencial = {ds[0][0]};
$valor_parcela = {ds[0][1]};
$valor_parcelaN = $valor_parcela * -1;
$insert_table = ‘movimento_financeiro’; // Table name
$insert_fields = array( // Field list, add as many as needed
‘ap’ => “’{ap}’”,
‘idbanco’ => “’{banco}’”,
‘idconta_agencia’ => “’{agencia}’”,
‘tipo_conta’ => “’{tipo_conta}’”,
‘conta’ => “’{conta}’”,
‘data’ => “’{data_cheque}’”,
‘tipo_documento’ => “’{cobranca}’”,
‘num_documento’ => “’{num_cheque}’”,
‘debito_credito’ => “‘2’”,
‘favorecido’ => “’{favorecido}’”,
‘valor’ => “’$valor_parcelaN’”,
‘tipopagamento’ => “’{tipo_pagamento}’”,
‘status’ => “‘1’”,
);

$insert_sql = ‘INSERT INTO ’ . $insert_table
. ’ (’ . implode(’, ‘, array_keys($insert_fields)) . ‘)’
. ’ VALUES (’ . implode(’, ', array_values($insert_fields)) . ‘)’;

sc_exec_sql($insert_sql);
[/code]

daí eu busco apenas a informação necessária pelo código e o resto busco pelos campos individualmente, e ai consigo pegar o que quero…
vejam que peguei somente o valor e os demais campos atualizo via ajax…
acho que é isso…