Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Floozie

[Resolvido] [Ajax] Bug com .post

Recommended Posts

@0cool

Pois é, com o $$.noConflict() não houve diferença.

 

@JCMais

Bom, eu fiz o que você pediu.. coloquei o serialize na variável estado, adicionei o var_dump no cidades.php e no js adicionei o alert(data); para ver o que a variável retornava.

 

Retornou: Ceará

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como imaginava, problema na codificação.

Como está usando ISO, terá que decodificar os parametros, coloque o seguinte código no arquivo cidades.php e diga o que retorna:

var_dump(utf8_decode($_GET['estado']));exit;

Compartilhar este post


Link para o post
Compartilhar em outros sites

no alert retornou:

string(12) "estado=Ceará"

(no post anterior eu tinha retirado apenas o texto referente ao estado)

 

@edit

Rsrs, que estranho. No cidades.php eu troquei o $estado = $_GET['estado']; por $estado = utf8_decode($_GET['estado']);

 

Agora passou a funcionar no '/' mas não no '/index.php'

 

@0cool

Tente clicar link do "Página Inicial" do menu, que você vê que muda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retire a parte que eu citei, e agora passe a usar a função utf8_decode() quando for receber alguma variável via Post ou Get. Se quiser automatizar isto:

foreach($_GET as $k => $v){
   $_GET[$k] = utf8_decode($v);
}

 

Teste agora o ajax e veja se está funcionando.

 

EDIT: Troque o tipo de ajax, você está usando Post, passe para Get.

 

Ps.: se quer mesmo uma dica, passe a usar a codificação UTF-8 como padrão, vai evitar dores de cabeça e problemas futuros, como este...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você viu, eu editei ae. Só que.. agora nos outros navegadores não está funcionando... No firefox só funciona com o '/' e no '/index.php' não funciona.

 

lembrando que no cidades.php existe:

header("Content-Type: text/html; charset=ISO-8859-1");

 

Isso atrapalha algo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa UTF-8 no lugar de ISO-8859-1.

 

Em ambas as páginas, a que recebe os dados, e a que requisita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com UTF-8 não está funcionando, mas se ambas estão em ISO-8859-1 funcionam. Só que.. como falei antes, pelo firefox, quando eu acesso o site digitando o endereço normalmente, funciona. Mas se eu clico no link da "Página Inicial" ou em qualquer um dos links do menu, Não funciona.

 

Existe realmente uma diferença nisso ? Isso está me confundindo muito e não deveria ter uma razão para dar esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho... faça o teste apenas com numeros... assim verá se o erro é na codificação ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera ! Creio que consegui :D

refiz o código, juntamente com as dicas de vocês e no final ficou assim:

funcs.js

function AjaxCidade(){

       var $$ = jQuery;
       var estado = $$("#estado").val();

       $$.get('cidades.php',{n_estado: estado},function(data){

               if(data!="")

               {
                       $$("#cidade").html(data);

                       AjaxBairro();
               }
               else
               {
                       alert('Nenhuma cidade foi cadastrada para o '+estado+'.');
               }

       });

}

function AjaxBairro(){

       var $$ = jQuery;
       var cidade = $$("#cidade").val();

       $$.get('cidades.php',{n_cidade: cidade},function(data){

               if(data!=""){
                       $$("#bairro").html(data);
               }
               else
               {
                       alert('Nenhumo bairro foi cadastrado para essa cidade.');
               }

       });

}

 

cidades.php

<?
include("config.php");

header("Content-Type: text/html; charset=ISO-8859-1");

$estado = utf8_decode($_GET['n_estado']);
$cidade = utf8_decode($_GET['n_cidade']);

if($estado!=''){
	$sql = mysql_query("SELECT * FROM cidades WHERE estado = '$estado'") or die(mysql_error());
	while($r = mysql_fetch_assoc($sql)){
		echo '<option value="'.$r['cidade'].'">'.$r['cidade'].'</option>';
	}
}

if($cidade!=''){
	$sql2 = mysql_query("SELECT * FROM bairros WHERE cidade = '$cidade'") or die(mysql_error());
	while($r2 = mysql_fetch_assoc($sql2)){
		echo '<option value="'.$r2['bairro'].'">'.$r2['bairro'].'</option>';
	}
}
?>

 

Agora está funcionando. Muito obrigado aos que me ajudaram (JCMais e 0cool), muito agradecido mesmo. Qualquer coisa posto algo se der problema denovo, até breve (espero que não, rsrs).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.