Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

José Rafael Rocha

Trazer dados do select option para input text

Recommended Posts

Estou com uma dúvida quando o usuario clicar em um determinado valor do select option(numero do bem), trazer alguns dados da tabela que esta no option para caixas de input text. Obs: Os dados do select option são carregados diretamente do banco.

Procurei algumas coisas no forum e vi Ajax, Json, mas não entendi muito bem.

 

<form action="" method="Post" id="form_baixa">
<table cellspacing="10">
<tr>
<td>
<label for="conta"><strong>Número do Bem:</strong> </label>
</td>
<td align="left">
<select name="idbem" id="idbem">
<?php
include 'conexao.php';
$sql = "SELECT * FROM bem";
$resultado = mysql_query($sql) or die(mysql_error());
while($registro= mysql_fetch_array($resultado))
{
$num_tombamento = $registro['num_tombamento'];
$idconta = $registro['idconta'];
echo "<option value='".$idbem."'>".$num_tombamento."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<label for="motivo"> <strong>Motivo da Baixa:</strong> </label>
</td>
<td align="left">
<textarea name="descricao" cols="40" rows="6" resize:"none"></textarea>
</td>
</tr>
<tr>
<td>
<label for="empenho"><strong>Empenho:</strong> </label>
</td>
<td align="left">
<input type="text" name="empenho" id="empenho"> </td>
<tr>
<td>
<label for="num_processo"><strong>Número do Processo:</strong> </label>
</td>
<td align="left">
<input type="text" name="num_processo" id="num_processo"> </td>
<tr>
<td><label for="setor"> <strong>Setor:</strong> </label></td>
<td align="left">
<select name="setor_idsetor">
<?php
$sql = "SELECT * FROM setor";
$resultado = mysql_query($sql) or die(mysql_error());
while($registro= mysql_fetch_array($resultado))
{
$descricao = $registro['descricao'];
$idsetor = $registro['idsetor'];
echo "<option value='".$idsetor."'>".$descricao."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<label for="data_tombamento"><strong>Data do Tombamento:</strong> </label>
</td>
<td align="left">
<input type="text" name="data_tombamento" id="data_tombamento"> </td>
<tr>
<td>
<label for="data_baixa"><strong>Data Baixa:</strong> </label>
</td>
<td align="left">
<input type="text" name="data_baixa" id="data_baixa"> </td>
<tr>
<td>
<label for=""> </label>
</td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, beleza?

 

Você pode colocar os valor em atributos data-* e utilizar uma função javascript para trazer os valores para os inputs, quando o option for selecionado.

 

No option você coloca os atributos data-*

echo "<option value='".$idbem."' data-descricao='".$descricao."' data-empenho='".$empenho."'>".$num_tombamento."</option>";

Ai você cria uma função javascript para pegar o item selecionado e colocar os valores nos inputs

function getBemSelected()
{
   var e = document.getElementById("idbem");
   var itemSelecionado = e.options[e.selectedIndex];

   var descricao = itemSelecionado.getAttribute("data-descricao");
   var empenho = itemSelecionado.getAttribute("data-empenho ");
   // complete com os demais valores

   document.getElementsByName("descricao")[0].innerHTML= descricao;
   document.getElementsByName("empenho")[0].value = descricao;
   // complete com os demais valores
}

E no select você chama a função quando o valor for alterado

<select name="idbem" id="idbem" onChange="getBemSelected();">

Outra abordagem seria utilizando ajax, o OnChange chamaria uma função ajax que iria no servidor e buscaria os dados para colocar nos inputs. Mas não vou codificar essa... Não é muito diferente do que mostrei, mas acho mais trabalhoso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.