Estou utilizando a biblioteca XAJAX para me auxilar no uso do ajax pois não conheço muito a tecnologia javascript.
Estou melhorando um sistema que criei para a empresa onde trabalho, mais estou com um problema.
O código funciona no firefox e no chrome, no Internet Explorer ele só funciona se o if ($linhas >=1), se cair em outros if da erro de javascript ou dependendo do computador não aparece nada!
Eis o codigo:
<?php
include"xajax.inc.php"; //importa a biblioteca
$xajax = new xajax(); //instancia
//logo abaixo criando a função, é onde ocorre o erro!
function consulta($login) {
$objResponse=new xajaxResponse();
//global $conexao, $banco;
$conexao = mysql_connect("localhost", "admin", "extend001");
$banco = mysql_select_db("extend",$conexao);
$verifica = mysql_query("select * from dados_pessoais where login = '$login'");
$linhas = mysql_num_rows($verifica);
if ($linhas >=1) {
$retorno = "o e-mail $login encontra-se cadastrado em nosso banco de dados";
$objResponse->addAssign("consulta","innerHTML",$retorno);
}
//se cair nesse if, não funciona, ja tentei com else também mais nao funciou!
if ($linhas == 0) {
$retorno= "o e-mail $login NÃO encontra-se cadastrado em nosso banco de dados";
$objResponse->addAssign("consulta","innerHTML",$retorno);
}
return $objResponse->getXML();
}
$xajax->registerFunction("consulta");
$xajax->processRequests();
?>
<title>Consulta ajax </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<?php $xajax->printJavascript(); ?>
</head>
<form action="teste.php" method="get" name="teste">
<table width="726" border="0" align="center">
<tr>
<td height="27" colspan="4" bgcolor="#006699"><font color="#FFFFFF">Dados para acesso</font></td>
</tr>
<tr>
<td height="26" valign="top" bgcolor="#E9E9E9"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">E-mail*</font></td>
<td colspan="3" bgcolor="#F0F0F0">
<p>
<input name="login" id="login" type="text" size="28" onblur="xajax_consulta(document.getElementById('login').value)"/>
<div id="consulta"></div>
</tr>
<tr>
<td width="151" height="26" valign="top" bgcolor="#E9E9E9"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">cidade: </font></td>
<td width="334" colspan="3" bgcolor="#F0F0F0">
<p>
<input name="cidade" id="cidade" type="text" size="28"/>
<div id="consulta"></div>
<input name="continuar" type="button" id="continuar" value="continuar" />
</tr>
</table>
</form>
Para quem quiser testar nos firefox e no Internet Explorer a página é essa:
http://inscricao.extend.com.br/form2.php
um email valido: tiago.cosme@extend.com.br
um email inválido: fulano123@ciclano.com
Alguém saberia me explicar o pq da revolta desse código? é só no IE!
Agradeço a lot!
Tiago
problema resolvido:
acentuação na variavel de retorno.
Solução: instanciar um metodo que fale para o ajax que o padrão de retorno é : UTF-8
Edição feita por: Tiagorj, 31/08/2009, 16:43.