Estou estudando através de exemplos na intertne, estou usando exemplos de 2 combobox, aqueles que você seleciona o estado no 1º dai ele preenche o 2º com as cidades correspondentes, para dai tentar chegar onde quero. Quero que o primeiro fique como esta, porém não existiria o 2º os dados seriam preenchidos em tabela ou textfield, de preferência em textfield. Tenhos os seguintes arquivos:
index.php
<? /* ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- */
//CONECTA AO MYSQL require_once("conecta.php");
//PEGA OS ESTADOS $sql = " SELECT a.id_estado, a.dsc_estado, a.sigl_estado FROM estados a ORDER BY a.dsc_estado";
//EXECUTA A QUERY $sql = mysql_query($sql);
$row = mysql_num_rows($sql); ?>
<script language="JavaScript">
function Dados(valor) { //verifica se o browser tem suporte a ajax try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch(ex) { try { ajax = new XMLHttpRequest(); } catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); ajax = null; } } } //se tiver suporte ajax if(ajax) { //deixa apenas o elemento 1 no option, os outros são excluídos document.forms[0].listCidades.options.length = 1;
ajax.onreadystatechange = function() { //enquanto estiver processando...emite a msg de carregando if(ajax.readyState == 1) { idOpcao.innerHTML = "Carregando...!"; } //após ser processado - chama função processXML que vai varrer os dados if(ajax.readyState == 4 ) { if(ajax.responseXML) { processXML(ajax.responseXML); } else { //caso não seja um arquivo XML emite a mensagem abaixo idOpcao.innerHTML = "--Primeiro selecione o estado--"; } } } //passa o código do estado escolhido var params = "estado="+valor; ajax.send(params); } }
function processXML(obj){ //pega a tag cidade var dataArray = obj.getElementsByTagName("cidade");
//total de elementos contidos na tag cidade if(dataArray.length > 0) { //percorre o arquivo XML paara extrair os dados for(var i = 0 ; i < dataArray.length ; i++) { var item = dataArray[i]; //contéudo dos campos no arquivo XML var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue; var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
//cria um novo option dinamicamente var novo = document.createElement("option"); //atribui um ID a esse elemento novo.setAttribute("id", "opcoes"); //atribui um valor novo.value = codigo; //atribui um texto novo.text = descricao; //finalmente adiciona o novo elemento document.forms[0].listCidades.options.add(novo); } } else { //caso o XML volte vazio, printa a mensagem abaixo idOpcao.innerHTML = "--Primeiro selecione o estado--"; } }
$conexao = mysql_pconnect("localhost","root","paulo") or die($msg[0]); mysql_select_db("imasters",$conexao) or die($msg[1]);
// Colocando o Início da tabela ?> <table border="1"><tr> <td><div align="center"><b>ID</b></div></td> <td><div align="center"><b>Nome</b></div></td> <td><div align="center"><b>Sigla</b></div></td> </tr> <?
// Fazendo uma consulta SQL e retornando os resultados em uma tabela HTML $query = "SELECT id_estado,dsc_estado,sigl_estado FROM estados ORDER BY id_estado"; $resultado = mysql_query($query,$conexao); while ($linha = mysql_fetch_array($resultado)) { ?> <tr> <td><? echo $linha['id_estado']; ?></td> <td><? echo $linha['dsc_estado']; ?></td> <td><? echo $linha['sigl_estado']; ?></td> </tr> <? } ?> </table> </body> </html>[/codebox]
conecta.php
[codebox]<? /* ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- */
//CONECTA AO MYSQL $conn = mysql_connect("localhost", "root", "paulo") or die("Erro na conexão com a base de dados");
//SELECIONA A BASE DE DADOS $db = mysql_select_db("imasters", $conn) or die("Erro na seleção da base de dados"); ?>
cidades.php
<? /****************************************************************** // ARQUIVO ...: Monta o XML das Cidades // BY ........: Júlio César Martini // DATA ......: 14/03/2006 /******************************************************************/
//CONECTA AO MYSQL require_once("conecta.php");
//RECEBE PARÃMETRO $pEstado = $_POST["estado"];
//QUERY $sql = " SELECT a.id_cidade, a.dsc_cidade FROM cidades a WHERE a.cod_estado = ".$pEstado." ORDER BY a.dsc_cidade";
Pergunta
pcjardim
Estou estudando através de exemplos na intertne, estou usando exemplos de 2 combobox, aqueles que você seleciona o estado no 1º dai ele preenche o 2º com as cidades correspondentes, para dai tentar chegar onde quero. Quero que o primeiro fique como esta, porém não existiria o 2º os dados seriam preenchidos em tabela ou textfield, de preferência em textfield. Tenhos os seguintes arquivos:
index.php
conecta.php
/*
----------------------------------------------------------------------
Arquivo .............: AJAX + PHP
Desenvolvido por ....: Júlio César Martini
Matéria .............: Artigo 127 - www.imasters.com.br
Criado em ..........: 14/03/2006
----------------------------------------------------------------------
*/
//CONECTA AO MYSQL
$conn = mysql_connect("localhost", "root", "paulo")
or die("Erro na conexão com a base de dados");
//SELECIONA A BASE DE DADOS
$db = mysql_select_db("imasters", $conn)
or die("Erro na seleção da base de dados");
?>
cidades.php
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.