Ir para conteúdo

POWERED BY:

Arquivado

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

Luther

Condição no MENU SELECT e TEXT AREA

Recommended Posts

Boa noite galera...

 

Eu vou tentar explicar o que eu quero pra ver se alguem sabe fazer... :P

 

Eu tenho um Banco com os seguintes Campos:

 

ID DEPARTAMENTO DESCRIÇÃO OS

1 SALA DO MESTRE ADM 6.9999

 

Na página com o FORM eu tenho um MENU SELECT com o seguinte Codigo:

 

<select name="dpto_origem" class="box">		  <option value="">SELECIONE AQUI</option>		  <optgroup label="<?php echo $row_objLIB01['departamento']; ?>"></optgroup>		  <?phpdo {  ?>		  <option value="<?php echo $row_objLIB01['descricao']?>"><?php echo $row_objLIB01['descricao']?></option>		  <?php} while ($row_objLIB01 = mysql_fetch_assoc($objLIB01));  $rows = mysql_num_rows($objLIB01);  if($rows > 0) {	  mysql_data_seek($objLIB01, 0);	  $row_objLIB01 = mysql_fetch_assoc($objLIB01);  }?>		  <optgroup label="<?php echo $row_objLIB02['departamento']; ?>"></optgroup>		  <?phpdo {  ?>		  <option value="<?php echo $row_objLIB02['descricao']?>"><?php echo $row_objLIB02['descricao']?></option>		  <?php} while ($row_objLIB02 = mysql_fetch_assoc($objLIB02));  $rows = mysql_num_rows($objLIB02);  if($rows > 0) {	  mysql_data_seek($objLIB02, 0);	  $row_objLIB02 = mysql_fetch_assoc($objLIB02);  }?>		</select>

Da pra entender que ele monta o Menu de acordo com as informações que existe no Banco né? beleza, logo abaixo eu tenho um TEXT AREA na qual quero que seja preenchido automaticamente.

 

Por exemplo, Eu selecionei no Menu o dado do Banco "SALA DO MESTRE", então no "Text Area" eu quero que ele auto selecione o OS "6.9999", que é um dado do Banco do mesmo registro do "SALA DO MESTRE".

 

Deu pra entender?

 

Alguem poderia ajudar ^_^ ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pelo que vi, acho que é isso que você quer, se for da uma resposta. Fiz o codigo como teste só, dai você da uma mudada nele e coloca no seu script, bem simples

 

<select size="1" name="select_teste" onchange="document.getElementById('textarea_teste').innerHTML = this.value">   <option value="Teste 1">Teste 1</option>   <option value="Teste 2">Teste 2</option>   <option value="Teste 3">Teste 3</option>   <option value="Teste 4">Teste 4</option></select><BR><BR><textarea rows="2" cols="20" id="textarea_teste"></textarea>
as chaves desse script esta em

onchange="document.getElementById('textarea_teste').innerHTML = this.value">

e em

id="textarea_teste">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pelo que vi, acho que é isso que você quer, se for da uma resposta. Fiz o codigo como teste só, dai você da uma mudada nele e coloca no seu script, bem simples

 

<select size="1" name="select_teste" onchange="document.getElementById('textarea_teste').innerHTML = this.value">   <option value="Teste 1">Teste 1</option>   <option value="Teste 2">Teste 2</option>   <option value="Teste 3">Teste 3</option>   <option value="Teste 4">Teste 4</option></select><BR><BR><textarea rows="2" cols="20" id="textarea_teste"></textarea>
as chaves desse script esta em

<select size="1" name="select_teste" onchange="document.getElementById('textarea_teste').innerHTML = this.value">

e em

<textarea rows="2" cols="20" id="textarea_teste"></textarea>

Eu vou testar ele agora... mas pelo que eu entendi lendo ele não vai dar certo o que eu quero. Pois eu quero que ele puxe a informação do Banco e coloque no TextArea um outro campo baseado no ID de acordo com o que foi selecionado do Banco.

 

 

EDIT:

 

Realmente não deu certo... ScornInPC brigadão pela ajuda, mas o codigo é bastante legal, tanto que guardei aqui pra mim... ^^, mas preciso que esses dados sejam puxados do Banco...

 

Tipo os Selects já estão sendo puxados do Banco sem problemas, agora quero que o TextArea seja preenchido de acordo com o que for selecionado no SELECT, mas também puxando essa informação do Banco, como explicado no topico...

Compartilhar este post


Link para o post
Compartilhar em outros sites

a ta, entendi, ja mando pra você já =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos la.

 

aqui fica a pagina teste

 

teste.php

<script>function OpenAjax(){   var XMLHttp;   try   {	  XMLHttp=new XMLHttpRequest();   }   catch(ee)   {	  try	  {		 XMLHttp=new ActiveXObject("Msxml2.XMLHTTP");	  }	  catch(e)	  {		 try		 {			XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");		 }		 catch(e)		 {			XMLHttp=false;		 }	  }   }   return XMLHttp;}function GetInfo(value, textarea){   var XMLHttp = new OpenAjax();   Area = document.getElementById(textarea);   var pagina = "./getinfo.php?value=" + value;   XMLHttp.open('GET', pagina, true);   XMLHttp.setRequestHeader("Cache-Control", "no-cache");   XMLHttp.setRequestHeader("Pragma", "no-cache");   XMLHttp.onreadystatechange = function()								{									if (XMLHttp.readyState == 4)									{										if (XMLHttp.status == 200)										{											var resultado = XMLHttp.responseText;											resultado = resultado.replace(/\+/g," ");											resultado = unescape(resultado);											Area.innerHTML = resultado;										}										else										{											Area.innerHTML = "Erro ao carregar.";										}									}								}   XMLHttp.send(null);}</script><select size="1" name="select_teste" onchange="GetInfo(this.value, 'textarea_teste')">   <option value="valor1">Teste 1</option>   <option value="valor2">Teste 2</option>   <option value="valor3">Teste 3</option>   <option value="valor4">Teste 4</option></select><BR><BR><textarea rows="2" cols="20" id="textarea_teste"></textarea>
aqui fica a pagina que pega as informações no banco de dados

 

getinfo.php

<?php  $value = $_GET['value'];    switch($value)  {	 case "valor1":		 echo "Teste 1";		 break;	 case "valor2":		 echo "Teste 2";		 break;	 case "valor3":		 echo "Teste 3";		 break;	 case "valor4":		 echo "Teste 4";		 break;	 default:		 echo "Valor não encontrado";  }    /*   * AQUI NAUM TESTEI COM BANCO DE DADOS, MAIS VOU COLOCAR +/- COMO FICARIA OK??   *   * include "db.php";   *   * $query = "SELECT * FROM meu_banco WHERE DEPARTAMENTO = $value";   * $res = mysql_query($query);   * $resp = mysql_fetch_array($res);   * echo $resp['OS'];   *   */  ?>

repare que e naum coloquei com o banco, fiz o teste com um switch mesmo, mais ai nessa pagina é só colocar a busca no banco de dados, e imprimir na tela, ja era, tudo que for impresso nessa pagina aparecerá no textarea =)

 

mais uma coisinha, o legal seria se você colocasse o value dos options, o ID do registro, e no getinfo.php buscasse pelo ID tb, ou entaum pra ficar mais correto ainda, fazer mais um banco só com os departamentos, e relacionar com o esse banco

 

beleza, ve se é isso que você quer mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

:blink: Eu fiquei babando pensando que ia dar certo.... :D

 

Desculpe o abuso e a demora da resposta, mas nao consegui testar antes...

 

Entao deu erro aqui na parte que esta em negrito, como isso parece ser AJAX eu fiquei sem saber o que fazer:

 

 

{

if (XMLHttp.status == 200)

{

var resultado = XMLHttp.responseText;

resultado = resultado.replace(/\+/g," ");

resultado = unescape(resultado);

Area.innerHTML = resultado;

}

Aaaaaaaaaaaaaaaahhh, que desesperooo...

 

Agora eu dei uma lida no codigo que você postou, entendi um pouquinho, acho que vai dar certo, o unico problema é esse erro nessa linha que eu não consigo resolver... =\

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixe, acabei de testar aqui, copiando o codigo do forum mesmo, e roda normal :S sei naum hem, naum parece ter erro ai naum.você testou no IE e no FF??

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer o seguinte, na pagina teste, coloque as tags HTML | HEAD | SCRIPT | BODY

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer o seguinte, na pagina teste, coloque as tags HTML | HEAD | SCRIPT | BODY

ScornInPC,Entao cara, eu deixei a estrutura da pagina teste assim (Foi Ctrl+c e Ctrl+v no codigo so pra ver a funcionalidade):

<HTML><HEAD></HEAD><script>//aquele que você passou</SCRIPT><BODY><SELECT></SELECT><textarea></textarea></BODY></HTML>

Tentei outras estruturas também, como:

<HTML><HEAD><script>//aquele que você passou</SCRIPT></HEAD><BODY><SELECT></SELECT><textarea></textarea></BODY></HTML>

e:

<HTML><HEAD></HEAD><BODY><script>//aquele que você passou</SCRIPT><SELECT></SELECT><textarea></textarea></BODY></HTML>

No FF deu certo, mas se tiver codigos HTML depois do PHP ele imprime também no textarea.No IE num deu certo, http://forum.imasters.com.br/public/style_emoticons/default/cry.gif Mano desculpa ta abusando da sua boa vontade... :P , mas eu acho que a gente vai chegar lá... eu vou tentar uma s coisicas aqui, se der certo eu posto o resultado.Se você consegui resolver vou ficar mui FELIZ, que nem quando a Argentina perdeu na copa :DCara, e tipo asim, ja aproveitando o topico e que você manja bem de Ajax, você sabe como fazer esse campo de texto que nem desse site http://www.netvibes.com/? Eu achei muito interessando, você clica no texto e ele vira um campo de texto, clica em qualquer lugar da pagina ele vira texto de novo... Oo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo, da uma olhada nesse codigo aqui, é isso que você quer naum neh??

 

<html>  <head>  <script>	var Texto = "Digite aqui o título de sua página";	function ChangeInput(id, txt, estado)	{	   var Area = document.getElementById(id);	   if(estado == 0)	   {		  Area.innerHTML = "<input type=\"text\" value=\"" + Texto + "\" id=\"txt\" size=\"20\" onblur=\"ChangeInput('Area', 'txt', 1);\">";	   }	   else	   {		  if(estado != 2)		  {			 var TxtArea = document.getElementById(txt);			 Texto = TxtArea.value;		  }		  if(Texto == "") Texto = "Digite aqui o título de sua página";		  Area.innerHTML = "<span onclick=\"ChangeInput('Area', 'txt', 0);\">" + Texto + "</span>";	   }	}  </script>  </head>  <body onload="ChangeInput('Area', 'txt', 2);">	 <div id="Area"></div>  </body></html>

tenho que admitir que no IE naum ficou tao bom quando no FF, mais testa ai =)

 

a respeito do outro codigo, vo da uma olhada no almoço, e te posto ele novamente

 

Não Aguentei =)

 

Aqui ta funcionando normalmente, tanto no IE quanto no FF, seria bom mais alguem do forum teste, dai saberemos se é o script ou sua maquina, sei la, pow, e tinha ficado tao joinha esse script =)

 

teste.php

<html>  <head>  <script>  function OpenAjax(){   var XMLHttp;   try   {	  XMLHttp=new XMLHttpRequest();   }   catch(ee)   {	  try	  {		 XMLHttp=new ActiveXObject("Msxml2.XMLHTTP");	  }	  catch(e)	  {		 try		 {			XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");		 }		 catch(e)		 {			XMLHttp=false;		 }	  }   }   return XMLHttp;}function GetInfo(value, textarea){   var XMLHttp = new OpenAjax();   Area = document.getElementById(textarea);   var pagina = "./getinfo.php?value=" + value;   XMLHttp.open('GET', pagina, true);   XMLHttp.setRequestHeader("Cache-Control", "no-cache");   XMLHttp.setRequestHeader("Pragma", "no-cache");   XMLHttp.onreadystatechange = function()								{									if (XMLHttp.readyState == 4)									{										if (XMLHttp.status == 200)										{											var resultado = XMLHttp.responseText;											resultado = resultado.replace(/\+/g," ");											resultado = unescape(resultado);											Area.innerHTML = resultado;										}										else										{											Area.innerHTML = "Erro ao carregar.";										}									}								}   XMLHttp.send(null);}  </script>  </head>  <body>	<select size="1" name="select_teste" onchange="GetInfo(this.value, 'textarea_teste')">	  <option value="0"></option>	  <option value="valor1">Teste 1</option>	  <option value="valor2">Teste 2</option>	  <option value="valor3">Teste 3</option>	  <option value="valor4">Teste 4</option>	</select>	<BR>	<BR>	<textarea rows="2" cols="20" id="textarea_teste"></textarea>  </body></html>

getinfo.php

<?php  $value = $_GET['value'];  switch($value)  {	 case "valor1":		 echo "Teste 1";		 break;	 case "valor2":		 echo "Teste 2";		 break;	 case "valor3":		 echo "Teste 3";		 break;	 case "valor4":		 echo "Teste 4";		 break;	 case "0":		 echo "Selecione um valor no campo acima";		 break;	 default:		 echo "Valor não encontrado";  }  /*   * AQUI NAUM TESTEI COM BANCO DE DADOS, MAIS VOU COLOCAR +/- COMO FICARIA OK??   *   * include "db.php";   *   * $query = "SELECT * FROM meu_banco WHERE DEPARTAMENTO = $value";   * $res = mysql_query($query);   * $resp = mysql_fetch_array($res);   * echo $resp['OS'];   *   */?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ScornInPC,Maninho, consegui fazer funcionar o codigo no IE e no FF. Bom eu estava comendo bola mesmo.Só não consegui fazer funcionar puxando do Banco... ^^O Valor que seleciono no Select ele manda para o Getinfo que pesquisa no Banco a os daquele valor que selecionei (Pelo menos foi isso que entendi lendo o codigo)... Mas ele nao ta fazendo isso.Retorna esse erro:Unknown column 'RECEPCAO' in 'where clause'Caso eu selecione algum dados Como "SALA DIOGO". Retorna esse erro:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DIOGO' at line 1Tem ideia do que pode ser? Pelo que eu vi a consulta esta certinha e a sintaxe do todo resto do codigo PHP também....A Consulta ta assim: SELECT * FROM objdepartamentos_lib WHERE departamento = $value

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso resolvido...Resolvi assim no get Info para conseguir puxar do Banco...

$getvalue = "-1";if (isset($_GET['value'])) { $getvalue = (get_magic_quotes_gpc()) ? $_GET['value'] : addslashes($_GET['value']);}mysql_select_db($database_conn, $conn);$query_movBusca = sprintf("SELECT * FROM objdepartamentos_lib WHERE objdepartamentos_lib.descricao LIKE '%%%%%s%%%%'", $getvalue);$movBusca = mysql_query($query_movBusca, $conn) or die(mysql_error());$row_movBusca = mysql_fetch_assoc($movBusca);echo $row_movBusca['os'];

ScornInPC,Muito obrigado pela ajuda... você é o cara, estou muito grato. Vlw mesmo, nem sei como te agradecer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o Area.value detro daquele if no lugar de Area.innerHTML

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.