


Eai Alex não encontrou nada de errado ?



JONNY_RC13 hasn't added any friends yet.
07/09/2008, 01:18
05/09/2008, 23:08
<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>
<?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); ?>
05/09/2008, 22:20
// 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."; } }
05/09/2008, 20:31
<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>
05/09/2008, 00:03
Community Forum Software by IP.Board
Licensed to: Webmasters Online