Ir para conteúdo
Fórum Script Brasil
  • 0

Xmlhttprequest


Vinícius

Pergunta

Oi pessoal,

Estou usando a tecnologia xmlHttpRequest em uma combo de estado e cidades.

Tudo funcionou perfeitamente até que precisei pegar em JavaScript o valor dessa cidade.

O meu problema é que no Mozilla eu consigo pegar o valor e no Internet Explorer eu não consigo pegar o valor.

Deem uma olhada no codigo.

HTML:

<tr>

  <td width="153" height="25"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>*</b></font><font face="Verdana, Arial, Helvetica, sans-serif"><font size="1"> <b>Estado:</b></font></font></td>

  <td width="327" height="25">

  <select name="estado" onChange="BuscarCidades()" onFocus="inicializa(2)">

    <option value="S" selected>UF</option>

    <option value="AC">AC</option>

    <option value="AL">AL</option>

    <option value="AM">AM</option>

    <option value="AP">AP</option>

    <option value="BA">BA</option>

    <option value="CE">CE</option>

    <option value="DF">DF</option>

    <option value="ES">ES</option>

    <option value="GO">GO</option>

    <option value="MA">MA</option>

    <option value="MG">MG</option>

    <option value="MS">MS</option>

    <option value="MT">MT</option>

    <option value="PB">PB</option>

    <option value="PE">PE</option>

    <option value="PI">PI</option>

    <option value="PR">PR</option>

    <option value="RJ">RJ</option>

    <option value="RO">RO</option>

    <option value="RN">RN</option>

    <option value="RR">RR</option>

    <option value="RS">RS</option>

    <option value="SC">SC</option>

    <option value="SE">SE</option>

    <option value="SP">SP</option>

    <option value="TO">TO</option>

  </select> 

  </td>

</tr>

<tr>

  <td width="153" height="25"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>* Cidade:</b></font></td>

  <td width="327" height="25">

  <div id='cidades'><select name='cidade' id='cid_aux'><option value='S' selected>Selecione a UF...</option></select></div>

  </td>

</tr>

script.js

var req;

function loadXMLDoc(url)

  {

  req = null;

  // Procura por um objeto nativo (Mozilla/Safari)

  if (window.XMLHttpRequest)

      {

      req = new XMLHttpRequest();

      req.onreadystatechange = processReqChange;

      req.open("GET", url, true);

      req.send(null);

      // Procura por uma versão ActiveX (IE)

      }

  else if (window.ActiveXObject)

      {

      req = new ActiveXObject("Microsoft.XMLHTTP");

      if (req)

        {

        req.onreadystatechange = processReqChange;

        req.open("GET", url, true);

        req.send();

        }

      }

  }

function processReqChange()

  {

  // apenas quando o estado for "completado"

  if (req.readyState == 4)

      {

      // apenas se o servidor retornar "OK"

      if (req.status == 200)

        {

        document.getElementById('cidades').innerHTML = req.responseText;

        }

      else

        {

        alert("Houve um problema ao obter os dados:\n" + req.statusText);

        }

      }

  }

function BuscarCidades()

  {

  loadXMLDoc("../cidades.php?estado="+document.forms['form1'].elements['estado'].value);

  }

cidades.php

<?php

include("../classes/classes.php");

$banco        = "banco";

$estado        = $_GET['estado];

//$conec_mysql  = mysql_connect("banco","usuario","senha");

$conec_mysql  = mysql_connect("banco","usuario","senha");

$instrucao    = "select cidade from cidades where estado ='$estado' order by cidade";

$query        = mysql_db_query($banco,$instrucao,$conec_mysql) or die ( mysql_error()." $instrucao "." - Erro no acesso a tabela");;

if ( mysql_num_rows($query) > 0):

  {

  echo("<select name='cidade' id='cid_aux'>");

  echo("<option value='S'>Selecione...");

  for ($x =0;  $x < mysql_num_rows($query); $x++) :

      {

      mysql_data_seek($query,$x);

      $linha      = mysql_fetch_row($query);

      $cidade    = $linha[0];

      echo("<option>$cidade");

      }

  endfor;

  echo("</option></select>");

  }

else:

  {

  echo("<select name='cidade' id='cid_aux'><option value='S' selected>Selecione a UF...</option></select>");

  }

endif;

?>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

O XMLHttpRequest é um objeto. Mas no IE, este objeto é um ActiveX, no Mozilla e no Safari, ele é um objeto nativo. Então a chamada para ele é diferente nestes navegadores. Sendo assim:

var req = new ActiveXObject("Microsoft.XMLHTTP");

var req = new XMLHttpRequest();

provavemente é por isso que num tá rolando ae!

fonte: http://phpbrasil.com/articles/article.php/id/992

abraços

----- edited -----

Mico: putz! agora que ví que você verificou o navegador antes de criar o objeto!

deixa pra lá! desconsidera!

abraços

Editado por fercosmig
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...