diego-md 0 Denunciar post Postado Junho 16, 2009 Bom dia a todos, espero que isso interesse a vocês. Tenho este código abaixo: <?php session_start(); $email = $_SESSION['email']; $senha = $_SESSION['senha']; $nome = $_SESSION['nome']; if ($email == "") header("Location: index.php"); ?> <?php include("conectar.php"); $sql = " SELECT codcidade, nomecidade FROM c_cidade ORDER BY nomecidade"; $sql = mysql_query($sql); $row = mysql_num_rows($sql); session_start(); $email = $_SESSION['email']; ?> <html> <head> <title>Carona Responsável - >>Oferecenco Carona - parte 2<<</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script> function Dados(valor) { 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; } } } if(ajax) { document.forms[0].bairro.options.length = 1; idOpcao = document.getElementById("opcoes"); ajax.open("POST", "cidades.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { if(ajax.readyState == 1) { idOpcao.innerHTML = "Carregando...!"; } if(ajax.readyState == 4 ) { if(ajax.responseXML) { processXML(ajax.responseXML); } else { idOpcao.innerHTML = "--Primeiro selecione o estado--"; } } } var params = "cidade="+valor; ajax.send(params); } } function processXML(obj){ var dataArray = obj.getElementsByTagName("cidade"); if(dataArray.length > 0) { for(var i = 0; i < dataArray.length; i++) { var item = dataArray[i]; var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue; var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue; idOpcao.innerHTML = "--Selecione uma das opções abaixo--"; var novo = document.createElement("option"); novo.setAttribute("id", "opcoes"); novo.value = codigo; novo.text = descricao; document.forms[0].bairro.options.add(novo); } } else { idOpcao.innerHTML = "--Primeiro selecione o estado--"; } } function Dados1(valor) { 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; } } } if(ajax) { document.forms[0].bairro1.options.length = 1; idOpcao = document.getElementById("opcoes1"); ajax.open("POST", "cidades.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.onreadystatechange = function() { if(ajax.readyState == 1) { idOpcao.innerHTML = "Carregando...!"; } if(ajax.readyState == 4 ) { if(ajax.responseXML1) { processXML1(ajax.responseXML1); } else { idOpcao.innerHTML = "--Primeiro selecione o estado--"; } } } var params = "cidade1="+valor; ajax.send(params); } } function processXML1(obj){ var dataArray = obj.getElementsByTagName("cidade1"); if(dataArray.length > 0) { for(var i = 0; i < dataArray.length; i++) { var item = dataArray[i]; var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue; var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue; idOpcao.innerHTML = "--Selecione uma das opções abaixo--"; var novo = document.createElement("option"); novo.setAttribute("id", "opcoes1"); novo.value = codigo; novo.text = descricao; document.forms[0].bairro1.options.add(novo); } } else { idOpcao.innerHTML = "--Primeiro selecione dasd--"; } } </script> </head> <body> <div align="right"> <?php echo '<b>Usuário logado:</b> <a href="consulta_usuario.php?email='.$email.'">'.$email.'</a> | <b><a href="logoff.php">Sair</a></b>'; ?> <form name="cadastro" id="cadastro"> <br><br><br><br><br><br> <table align="center"> <tr> <td colspan="2"> <h1 align="center"><font face="tahoma" color="#3300FF" size="15px">Sua Rota:</font></h1><br> </td> </tr> <tr> <td colspan="2"> <h1 align="center"><font face="tahoma" color="#3300FF" size="15px">Onde Estou:</font></h1><br> </td> </tr> <tr> <td align="right">Cidade:</td> <td> <select name="cidade" onChange="Dados(this.value);"> <option value="0">--Selecione a cidade--</option> <?php for($i=0; $i<$row; $i++) { echo "<option value='".mysql_result($sql, $i, "codcidade")."'>"; echo mysql_result($sql, $i, "nomecidade"). "</option>"; } ?> </select><br> </td> </tr> <tr> <td align="right">Bairro:</td> <td> <select name="bairro" onChange="alert(this.value);"> <option id="opcoes" value="0">--Primeiro selecione a cidade--</option> </select><br> </td> </tr> <tr> <td colspan="2"> <h1 align="center"><font face="tahoma" color="#3300FF" size="15px">Para Onde Vou:</font></h1><br> </td> </tr> <tr> <td align="right">Cidade:</td> <td> <select name="cidade1" onChange="Dados1(this.value);"> <option value="0">--Selecione a cidade--</option> <?php for($i=0; $i<$row; $i++) { echo "<option value='".mysql_result($sql, $i, "codcidade")."'>"; echo mysql_result($sql, $i, "nomecidade"). "</option>"; } ?> </select><br> </td> </tr> <tr> <td align="right">Bairro:</td> <td> <select name="bairro1" onChange="alert(this.value);"> <option id="opcoes1" value="0">--Primeiro selecione a cidade--</option> </select><br> </td> </tr> <tr> <td colspan="2" align="center"><br><br> <input type="button" name="continuar" value="Continuar" onclick="next();"> </td> </tr> </table> </form> </div> </body> </html> Só que preciso fazer com que o segundo select da cidade funcione mas tranquei aqui... <?php include("conectar.php"); $pCidade = $_POST["cidade"]; $pCidade1 = $_POST["cidade1"]; $sql = " SELECT codbairro, nomebairro FROM c_bairro WHERE codcidade = ".$pCidade." ORDER BY nomebairro"; $sql1 = " SELECT codbairro, nomebairro FROM c_bairro WHERE codcidade = ".$pCidade1." ORDER BY nomebairro"; $sql = mysql_query($sql); $sql1 = mysql_query($sql1); $row = mysql_num_rows($sql); if($row) { $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; $xml .= "<cidades>\n"; for($i=0; $i<$row; $i++) { $codigo = mysql_result($sql, $i, "codbairro"); $descricao = mysql_result($sql, $i, "nomebairro"); $xml .= "<cidade>\n"; $xml .= "<codigo>".$codigo."</codigo>\n"; $xml .= "<descricao>".$descricao."</descricao>\n"; $xml .= "</cidade>\n"; } $xml.= "</cidades>\n"; Header("Content-type: application/xml; charset=iso-8859-1"); } echo $xml; ?> Alguem pode me dar uma luz?? deverie fazer mais um xml??? Desde já agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Junho 16, 2009 o que da de errado ? e qual a duvida ? explica melhor... *script ta grande demais pra ler ^^ valww Compartilhar este post Link para o post Compartilhar em outros sites
diego-md 0 Denunciar post Postado Junho 17, 2009 meu problema é o seguinte... se vizualizarem, tenho 4 selects com ajax funciona assim, selecionando o cidade, o bairro carrega automaticamente. Pois bem, tenho os dois select cidades e um está funcional, o outro não acha nada na sua busca ao banco... e após necessito que ele armazene as variáveis e salve após o usuário concluir... Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Junho 17, 2009 hmm.. acho que ajax seria mais para o forum de Javascript/DHTML http://forum.imasters.com.br/index.php?showforum=6 mas sugiro você utilizar algum framework para facilitar o processo .. por exemplo PrototypeJS ficaria assim dai no head: </script> <script src="prototype.js" type="text/javascript"></script> <script type="text/JavaScript"> function MM_jumpMenu(targ,selObj,restore){ //v3.0 var valor = $F('cidade'); //menu que seleciona cidade var valor2 = $F('cidade2'); //menu que seleciona cidade new Ajax.Request('ajax_response_cidade_ref.php?referencia='+valor, { onSuccess: function(transport) { $('divbairro').innerHTML = transport.responseText; //div que esta o menu do bairro } }); new Ajax.Request('ajax_response_cidade2_ref.php?referencia='+valor2, { onSuccess: function(transport) { $('divbairro2').innerHTML = transport.responseText; //div que esta o menu do bairro } }); } </script> no body: nos selects das cidades adicione onchange="MM_jumpMenu() dentro das divbairro coloque <select name="bairro" disabled></select> e crie os arquivos de resposta... otros arquivos: ajax_response_cidade_ref.php e ajax_response_cidade2_ref.php com o resultado que deseja retornar .. por exemplo um select com os dados dos bairros.. <select name="bairro"> <?php require_once('Connections/conn.php'); // só executa se tiver valor no GET de referencia if($_GET['referencia'] != '') { mysql_select_db($database_conn); $query_ref = "SELECT codbairro, nomebairro FROM c_bairro WHERE codcidade = ".$_GET['referencia']." ORDER BY nomebairro"; $ref = mysql_query($query_ref, $conn) or die(mysql_error()); ?> <?php while($a = mysql_fetch_assoc($ref)) { ?> <option value="<?php echo($a['nomebairro']); ?>" selected><?php echo utf8_encode(($a['nomebairro'])); ?> </option> <?php } // fim do while } // fim do if tem valor no GET ?> </select> quanto a quardar os dados você pode fazer como ja começou atravez de sessions.. de uma olhada no segundo link.. valww espero ter ajudado Links: http://www.prototypejs.org/ http://www.revistaphp.com.br/artigo.php?id=8 Compartilhar este post Link para o post Compartilhar em outros sites