Ir para conteúdo

POWERED BY:

Arquivado

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

wneo

Exibir dados dentro de input ou textarea ao clicar em select

Recommended Posts

Bom dia!!!

 

Pessoal,

 

Montei um form select onde trago dados do banco, tabela chamados, campo tipo.

Segue Abaixo código:

 

- Agora preciso, que ao clicar em um item do select option, carregue as informações de outro campo em um textarea -

<form>
<select>
<?php

include("conecta.php");

$dobanco= "SELECT * FROM chamados";

$exibe = mysql_query($dobanco);

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");

}
?>
</select>

Descrição:<br>
<textarea></textarea>

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai precisar de uma busca em ajax pelo .change. Ao selecionar o item você vai usar o ajax para buscar no banco os dados para preencher a textarea de acordo com os dados do select. Ai é usar o .load para imprimir o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guicampos, valew apoio aí, mas num deu certo ainda, olha só, coloquei assim usando o trecho q vc falou:

<form>
<select>
<?php

include("conecta.php");

$dobanco= "SELECT * FROM chamados";

$exibe = mysql_query($dobanco);

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");
}
?>
</select>

Descrição:<br>
<?php
   $tipo = $row['tipo'];
?>

<textarea><?php if (!empty($tipo)) {echo "$tipo"; } ?></textarea>



</form>

Guicampos, valew apoio aí, mas num deu certo ainda, olha só, coloquei assim usando o trecho q vc falou:

<form>
<select>
<?php

include("conecta.php");

$dobanco= "SELECT * FROM chamados";

$exibe = mysql_query($dobanco);

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");
}
?>
</select>

Descrição:<br>
<?php
   $tipo = $row['tipo'];
?>

<textarea><?php if (!empty($tipo)) {echo "$tipo"; } ?></textarea>



</form>

Você vai precisar de uma busca em ajax pelo .change. Ao selecionar o item você vai usar o ajax para buscar no banco os dados para preencher a textarea de acordo com os dados do select. Ai é usar o .load para imprimir o resultado.

Allex, creio nisso que voce falou... preciso de um apoio nessa questão... você poderia me mostrar um exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guicampos, valew apoio aí, mas num deu certo ainda, olha só, coloquei assim usando o trecho q você falou:

<form>
<select>
<?php

include("conecta.php");

$dobanco= "SELECT * FROM chamados";

$exibe = mysql_query($dobanco);

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");
}
?>
</select>

Descrição:<br>
<?php
   $tipo = $row['tipo'];
?>

<textarea><?php if (!empty($tipo)) {echo "$tipo"; } ?></textarea>



</form>

 

Mano, substitui esse trecho:

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");
}
?>
</select>

Descrição:<br>
<?php
   $tipo = $row['tipo'];
?>

Por:

while ($row= mysql_fetch_array($exibe)){

    $tipo = $row['tipo'];

}
?>
</select>

Descrição:<br>

E me fala o que acontece!!

 

Abraçoos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altera o link do jQuery.js na head e teste para ver se é isso que precisa.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<script type="text/javascript" src="jQuery.js"></script>
		<script type="text/javascript">
			jQuery(document).ready(function(){
				jQuery("#teste").change(function(){
					jQuery("#texto").html(jQuery(this).val());
				});
			});
		</script>
	</head>
	<body>
		<form id="formulario" action="" method="post">
			<select id="teste" name="teste">
				<option value="1">Opção 1</option>
				<option value="2">Opção 2</option>
			</select>
			<textarea id="texto" name="texto" rows="5"></textarea>
		</form>
	</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guicampos, dessa forma ocorre que visualiza um item da coluna tipo dentro do textarea... mas preciso que apareçam todos os itens da coluna tipo dentro nos options do select, e ao clicar em um dos itens do tipo, exibir o resultado referente a coluna descrição dentro do text area... ou imagine digamos, que tenho varios input text, onde tem o cadastro de nome,cpf idade, endereço,etc... Então o usuário cadastra esses dados nos inputs, e depois vai poder escolher no select o cliente cadastrado, e os dados desse cliente serão carregados nos mesmos inputs ao clicar no select relativo...podendo assim fazer o update dos dados...


 

Altera o link do jQuery.js na head e teste para ver se é isso que precisa.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<script type="text/javascript" src="jQuery.js"></script>
		<script type="text/javascript">
			jQuery(document).ready(function(){
				jQuery("#teste").change(function(){
					jQuery("#texto").html(jQuery(this).val());
				});
			});
		</script>
	</head>
	<body>
		<form id="formulario" action="" method="post">
			<select id="teste" name="teste">
				<option value="1">Opção 1</option>
				<option value="2">Opção 2</option>
			</select>
			<textarea id="texto" name="texto" rows="5"></textarea>
		</form>
	</body>
</html>

Allex, gostei disso! mas preciso que os dados exibidos sejam do banco... é possível fazer isso com essa idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vai implementando, qualquer dúvida poste o código.

Olha só,

Dessa forma toh conseguindo exibir a coluna tipo da tabela chamados nos options do select. E quando clico, aparece dentro do textarea a mesma informação da coluna tipo selecionada.Agora, Preciso que, ao clicar no item do select desejado, retorne na textarea a coluna descrição, que está atrelada aquele selecionado no option:

Option>Tipo1

Textarea>descrição1

<form id="formulario" action="" method="post">

			<select id="teste" name="teste">

				<?php

include("conecta.php");

$dobanco= "SELECT * FROM chamados";

$exibe = mysql_query($dobanco);

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");
}
?>

			</select>
                        <br>
			Descrição:
			<br>
			<textarea id="texto" name="texto" rows="5"></textarea>

		</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estude sobre .get. Você vai precisar chama uma página de pesquisa php através desta função.

jQuery("#teste").change(function(){
    // A função get ficará aqui. Onde está: jQuery(this).val() será exibido o resultado da pesquisa.
    jQuery("#texto").html(jQuery(this).val());
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estude sobre .get. Você vai precisar chama uma página de pesquisa php através desta função.

jQuery("#teste").change(function(){    // A função get ficará aqui. Onde está: jQuery(this).val() será exibido o resultado da pesquisa.    jQuery("#texto").html(jQuery(this).val());});

Olha só, dessa forma consegui fazer os dados serem exibidos na textarea... mas, eu gostaria que cada dado retornasse em inputs diferentes...aih quebrei a cabeça..=/

<script>function carregarDescricao(codigo){        if(codigo > 0){        $.post("retornaDescricao2.php", {codigo: codigo}, function(data){            $("#descricao").val(data);        });    }}<label for="linguagem">Selecione um campo da coluna assunto:</label>    <?php       //inclui o arquivo de conexao com o banco de dados       require_once("conecta.php");        $query = "select id_chamado,assunto from chamados";       $res   = mysql_query($query);    ?>       <select id="linguagem" name="linguagem" onChange="carregarDescricao(this.value)">          <option value="0">Selecione...</option>          <?php             while($row = mysql_fetch_object($res)){                   echo "<option value='".$row->id_chamado."'>".$row->assunto."</option>";             }          ?>    </select>      <br />    <label for="descricao">Descrição:</label><br>    <textarea name="descricao" id="descricao" rows="5" cols="50"></textarea> 

<?php

require_once("conecta.php");

 

$codigo = $_POST["codigo"];

 

$query = "select descreva from chamados where id_chamado = ".$codigo;

$res = mysql_query($query);

$row = mysql_fetch_object($res);

 

echo utf8_encode($row->descreva);

?>

 

 

Pessoal, não consegui ainda...

Tenho uma página com 22 campos de fomulário, inputs...

Preciso que na mesma página, ao clicar no select, todos os input fiquem preenchidos, trazendo os dadso q anteriormente já foram cadastrados...possibilitando a edição..e update no banco.. com o código acima, já consigo exibir tudo em um unico textarea.. mas falta pouco pra chegar no que preciso, se alguém souber como continuar o código, ou encontrar outra idéia viável para isso, ajuda aí!!!=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma div e informa uma identificação para ela como por exemplo

<div id="conteudo"></div>

Assim vazia mesmo no seu select algo igual ao que você já fez:

<select id="teste" name="teste">

<?php

include("conecta.php");

$dobanco= "SELECT * FROM chamados";

$exibe = mysql_query($dobanco);

while ($row= mysql_fetch_array($exibe)){

echo("<option value='".$row['tipo']."'>".$row['tipo']."</option>");
}
?>

</select>

No seu Jquery A requisição parecida como você já fez também (você estava perto da solução)
Porém altere o .val por .html

<script>
function carregarDescricao(codigo){    
    if(codigo > 0){
        $.post("retornaDescricao2.php", {codigo: codigo}, function(data){
            $("#conteudo").html(data);
        });
    }
}
</script>

Agora na sua página retornaDescricao2.php você coloca todo o conteúdo que quer que apareça dentro dessa div

Não esquecendo de incluir novamente a conexão com o Banco de dados pois quando você chama conteúdo por demanda de AJAX ela perde a consistência com a conexão atual .

Além disso você pode colocar um Load enquanto carrega o arquivo assim:

<script>
function carregarDescricao(codigo){
    beforeSend:$("#conteudo").html("Aguarde Carregando ...");
    if(codigo > 0){
        $.post("retornaDescricao2.php", {codigo: codigo}, function(data){
            $("#conteudo").html(data);
        });
    }
}
</script>

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.