Jump to content


JONNY_RC13

Member Since 28/08/2008
Offline Last Active 07/09/2008, 21:51
-----

Posts I've Made

In Topic: Combobox Dinamico ! Php + Javascript

07/09/2008, 01:18

Bom le eu li! (y) , mais ainda não consegui fazer o código funcionar se voce puder da uma olhadinha ai de leve eu agradeço! blz! brigadaum !! :blush: ;-)

Eai Alex não encontrou nada de errado ? =) putz jah tentei de tudo aki mais nada acontece !! :-) eai galera alguem tem uma idéia do que ha de errado !??? :blink:

In Topic: Combobox Dinamico ! Php + Javascript

05/09/2008, 23:08

Putz !!!! fun fo !! :lol:

<html>
   <head>
	  <title>PHP + AJAX</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


 <script type='text/javascript'>

 // Função que recupera os dados da pesquisafunction catchDados(valor)
 
function catchDados(valor) {
  // Instancia o objeto
  ajax = new XMLHttpRequest();
  
  // Recupera o combo-box ESTADOS
  estados = document.getElementById('estados');
  
  // Recupera o combo-box CIDADES
  cidades = document.getElementById('cidades');
  if (ajax) {
	// Limpa o combo-box CIDADES
	cidades.options.length = 1;

	// Faz a requisição
	ajax.open("POST", "consulta.php", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	// Vamos processar os estados da requisição
	ajax.onreadystatechange = function() {
	  // Carregando...
	  if (ajax.readyState == 1) {
		cidades.innerHTML = "Carregando...";
	  }
	  // Ao receber a resposta
	  if (ajax.readyState == 4 ) {
		if (ajax.responseXML) {
		  montaCombo(ajax.responseXML);
		} else {
		  cidades.innerHTML = "Selecione o estado.";
		}
	  }
	}
	// Envia os parâmetros
	var params = "estado="+valor;
	ajax.send(params);
}


function montaCombo(XML){
  // Array com os dados das cidades
  var CIDADES = XML.getElementsByTagName("cidade");
  // Recupera o combo-box CIDADES
  cidades = document.getElementById('cidades');

  // Verifica se a consulta retornou alguma coisa
  if (CIDADES.length > 0) {
	// Lemos todo o arquivo XML
	for(var i = 0; i < XML.length; i++) {
	  item = XML[i];
	  ID = item.getElementsByTagName("id")[0].firstChild.nodeValue;
	  NOME = item.getElementsByTagName("nome")[0].firstChild.nodeValue;

	  cidades.innerHTML = "Escolha...";
	  // Aqui e DOM, assunto para um outro artigo
	  // Cria os dados dentro do combo
	  opt = document.createElement("option");
	  opt.value = id;
	  opt.text  = nome;
	  cidades.options.add(opt);
	}
  } else {
	// caso o XML retorne em branco
	cidades.innerHTML = "Escolha o estado.";
  }
}
  }
</script>

 </head>

   <body>
	  <h1>AJAX + PHP</h1>
  Recuperando dados sem refresh, usando AJAX.
	  <br><br>

  <form>
	 Estado:
	 <select name="estados" id="estados" onChange="catchDados(this.value);">
		<option value="">Escolha...</option>
	<?php
					  /*
						* Carregando os estados
					  */
					  $conexao = mysql_connect("localhost", "root", "") OR DIE("Erro na conexão.");
					  $banco = mysql_select_db("ajax");
					  $resultado = mysql_query( sprintf("SELECT id, nome FROM estados ORDER BY nome ASC") );
					  while ($record = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
						printf("<option value=\"%s\">%s</option>\n", $record['id'], $record['nome']);
					  }
					?>
		</select>
		 <br>
		Cidade:
		<select name="cidades">
			<option id="" value="">Escolha o estado...</option>
		</select>
	 </form>
   </body>
</html>


O Problema é que agora ele não está retornando nada ! no segundo combo mas não dá erro deve ser erro de consulta bo banco !


da uma olhada !


<?php
  /*
	* Arquivo consulta.php
  */
  // Abre uma conexão com o banco
  $conexao = mysql_connect("localhost", "root", "") OR DIE("Erro na conexão.");
  
  // Seleciona o banco a ser utilizado
  $banco = mysql_select_db("ajax") OR DIE("Erro ao selecionar o banco.");
  
  // Realiza a consulta
  $resultado = mysql_query( sprintf("SELECT id, nome FROM cidades WHERE estado=%d", $_REQUEST["estados"]) );

  // Gera o XML com o resultado desta pesquisa
  $XML = sprintf("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n");
  while ( $record = mysql_fetch_array($resultado, MYSQL_ASSOC) ) {
	$XML .= sprintf("<cidade>\n");
	$XML .= sprintf("<id>%s</id>\n", $record['id']);
	$XML .= sprintf("<nome>%s</nome>\n", $record['nome']);
  }

  // HEADER do arquivo XML
  Header("Content-type: application/xml; charset=iso-8859-1");
  // Mostra os dados
  printf("<cidades>\n%s</cidades>\n", $XML);
?>


Ve algu de errado ? :huh: ???

In Topic: Combobox Dinamico ! Php + Javascript

05/09/2008, 22:20

intaum ele até existe mais onde devo colocalo?


// Função que recupera os dados da pesquisafunction catchDados(valor) {
function catchDados(valor) {
  // Instancia o objeto
  ajax = new XMLHttpRequest();
  // Recupera o combo-box ESTADOS
  estados = document.getElementById('estados');
  // Recupera o combo-box CIDADES
  cidades = document.getElementById('cidades');
  if (ajax) {
	// Limpa o combo-box CIDADES
	cidades.options.length = 1;

	// Faz a requisição
	ajax.open("POST", "consulta.php", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	// Vamos processar os estados da requisição
	ajax.onreadystatechange = function() {
	  // Carregando...
	  if (ajax.readyState == 1) {
		cidades.innerHTML = "Carregando...";
	  }
	  // Ao receber a resposta
	  if (ajax.readyState == 4 ) {
		if (ajax.responseXML) {
		  montaCombo(ajax.responseXML);
		} else {
		  cidades.innerHTML = "Selecione o estado.";
		}
	  }
	}
	// Envia os parâmetros
	var params = "estado="+valor;
	ajax.send(params);
}


function montaCombo(XML){
  // Array com os dados das cidades
  var CIDADES = XML.getElementsByTagName("cidade");
  // Recupera o combo-box CIDADES
  cidades = document.getElementById('cidades');

  // Verifica se a consulta retornou alguma coisa
  if (CIDADES.length > 0) {
	// Lemos todo o arquivo XML
	for(var i = 0; i < XML.length; i++) {
	  item = XML[i];
	  ID = item.getElementsByTagName("id")[0].firstChild.nodeValue;
	  NOME = item.getElementsByTagName("nome")[0].firstChild.nodeValue;

	  cidades.innerHTML = "Escolha...";
	  // Aqui e DOM, assunto para um outro artigo
	  // Cria os dados dentro do combo
	  opt = document.createElement("option");
	  opt.value = id;
	  opt.text  = nome;
	  cidades.options.add(opt);
	}
  } else {
	// caso o XML retorne em branco
	cidades.innerHTML = "Escolha o estado.";
  }
}

In Topic: Combobox Dinamico ! Php + Javascript

05/09/2008, 20:31

hummm !!! :ponder: tipo naum manjo nada de ajax vc tem um exeplo pratico de uma uma requisição com ajax ? (ok2)e eu posso utiliza-lo juntamente com o php ? :blink: ???

Peguei esse exemplo mais ele dá erro ! :shit:

-
linha: 14
Caractere: 1
Erro: objeto esperado
-
sabe me dizer porque!?
:-)

<html>
   <head>
	  <title>PHP + AJAX</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   </head>

   <body>
	  <h1>AJAX + PHP</h1>
  Recuperando dados sem refresh, usando AJAX.
	  <br><br>

  <form>
	 Estado:
	 <select name="estados" id="estados" onChange="catchDados(this.value);">
		<option value="">Escolha...</option>
	<?php
					  /*
						* Carregando os estados
					  */
					  $conexao = mysql_connect("localhost", "root", "") OR DIE("Erro na conexão.");
					  $banco = mysql_select_db("ajax");
					  $resultado = mysql_query( sprintf("SELECT id, nome FROM estados ORDER BY nome ASC") );
					  while ($record = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
						printf("<option value=\"%s\">%s</option>\n", $record['id'], $record['nome']);
					  }
					?>
		</select>
		 <br>
		Cidade:
		<select name="cidades">
			<option id="" value="">Escolha o estado...</option>
		</select>
	 </form>
   </body>
</html>

In Topic: Combobox Dinamico ! Php + Javascript

05/09/2008, 00:03

É dessa forma deu certo !!! :lol:
Mas não haveria um jeito de obter o valor do combo sem o refresh da pagna? :huh:
pois ao dar o refresh o combo perde sua seleção ! :wacko:

IPB Skin By Virteq