Ir para conteúdo

POWERED BY:

Arquivado

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

Gabriel Palucoski

Tem como?

Recommended Posts

Boa Tarde á todos, estou fazendo um controle de produtividade, e quando o usuário selecionar algum supervisor, que, apareça em um campo em branco no formulário o nome da organização daquele supervisor, via consulta SQL, gostaria de saber se é viável fazer isso com JS e se alguem pode me citar um exemplo.

 

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É viavel sim...mas você teria que fazer chamadas assincronicas a seu server-side que faria a consulta ao banco de dados e enviaria um response á pagina que fez o request.

No onchange do select,você fazia a chamada assincronica,e quando o readyState da chamada fosse 4 e o status fosse 200,você mudava o inner ou value do campo em branco pro response-text (ou response-xml tratado).

Abraço!

 

Ps:requer conhecimento em cima de alguma linguagem server-side

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>
	<head>
		<script>
			var ajax;
			function initAjax(){
				var ajax;
				try {
					ajax = new XMLHttpRequest();
				} catch(err){
					try {
						ajax = new ActiveXObject("Microsoft.XMLHTTP");
					} catch(err){
						try {
							ajax = new ActiveXObject("Msxml2.XMLHTTP");
						} catch(fatalError){
							alert("Browser sem suporte a ajax.\nScript não funcionará corretamente");
						}
					}
				}
				return ajax;
			}
			function enviaSupervisor(supervisor){
				ajax = initAjax();
				ajax.onreadystatechange = trataRespostaAssincronica;
				ajax.open("POST", "get_organizacao.php", true);
				ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				ajax.send("supervisor="+supervisor);
			}
			function trataRespostaAssincronica(){
				if(ajax.readyState == 4){
					if(ajax.Status == 200){
						document.getElementById("organizacao").innerHTML = ajax.responseText;
					}
				}
			}
		</script>
	</head>
		<body>
			<select name="supervisor" onChange="java script:enviaSupervisor(this.value);">
				<option value="proust">Proust</option>
				<option value="gabriel">Gabriel</option>
				<option selected="selected">Selecione</option>
			</select><br />
			Organizacao:<div id="organizacao"></div>
		</body>
</html>

get_organizacao.php:

<?php
$supervisor = $_POST['supervisor'];
if(trim($supervisor) != ''){
	if(strlen($supervisor) < 50){
		//$c = variavel de conexao com o db
		$q = @dbx_query($c, "SELECT * from supervisores WHERE supervisor=".addslashes($supervisor)."");
		if($q->rows == 1){
			echo $q->data[0][0];
		} else {
			echo 'Supervisor não encontrado';
		}
	}
}
?>

Estrutura tabela:

Tabela:supervisores
supervisor: varchar not null
organizacao: varchar not null

Dá uma lida sobre dom-manipulation e ajax,ai dá para incrementar meu code bem legal!

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Proust, gostaria de agradecer sua ajuda, porém não funcionou o código que voce me passou, copiei exatamente e criei uma string de conexão DBX com o MySQL, gostaria de saber se tem algo errado:

 

$c = dbx_connect(DBX_MYSQL,"localhost","bd_teste","root","root");
$q = @dbx_query($c, "SELECT * from supervisores WHERE supervisor=".addslashes($supervisor)."");

E a criação do BD pra fazer a consulta

 

DROP TABLE IF EXISTS `bd_teste`.`supervisores`;
CREATE TABLE  `bd_teste`.`supervisores` (
  `supervisor` varchar(255) NOT NULL,
  `organizacao` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe amigo...falta de atenção...troque:

if(ajax.Status == 200){

Por:

if(ajax.status == 200){

E lembra que é java script: (junto),e não java script:.

Teste e me avise o resultado!Testei aqui e funciono legalzinho.

Abraço!

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.