Ir para conteúdo

POWERED BY:

Arquivado

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

Mulambo

[Resolvido] Problema com charset em carregamento sem refresh jque

Recommended Posts

OLá amigos, estou usando esse pequeno script postado pelo usuário Dii.

http://forum.imasters.com.br/topic/425852-carregar-pagina-em-div-com-jquery/page__p__1682544#entry1682544

 

A questão é a seguinte, no firefox não exibe certos caracteres, por exemplo, "Rádio" fica "R�dio". já arrumei o charset do arquivo page.php porém não deu certo.

 

Vamos ao meu código.

Exibindo e carregando dentro da div

<script type='text/javascript'>
$(document).ready(function(){
$('#navHolder a').live('click',function(){

 $('#contentContent').load($(this).attr('href'));
 return false;
});
});
</script>

 

Arquivo page.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="robots" content="noindex,nofollow" />
<title></title>
<script type="text/javascript">
$(document).ready(function() {
	$(".iframe").fancybox({
		'width'				: '100%',
		'height'			: '100%',
		'autoScale'			: false,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
	$(".iframeEventos").fancybox({
		'width'				: '75%',
		'height'			: '75%',
		'autoScale'			: false,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
});
</script>
</head>
<body>
<?php
include('includes/incl.all.php');
$pagina = (isset($_GET["route"]) ? $_GET["route"] : "home");
$pagina = str_replace('.','/',$pagina);
$arquivo = "paginas/{$pagina}.php";
if (file_exists($arquivo) == true) { include($arquivo);} else { include ("paginas/erro.php"); 
}
?>	
</body>
</html>

 

Bom, é isso ai, não sei porque não tá funcionando, se alguem puder me ajudar, agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ta fazendo um ajax.

 

o ajax do jquery é utf8

está havendo um conflito com a tua pagina que é em ISO. Sete alguns headers com o php do charset.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá william, obrigado pela resposta.

 

Mas acho que não entendi direito,

O charset padrão do jquery é utf-8 certo?

 

Então como posso setar o charset brasileiro através de header?

 

Edit, seu blog me ajudou! Mas no IE ainda não deu resultado.

 

forcei o header na pagina page.php, que dá include nas outras paginas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edit, seu blog me ajudou! Mas no IE ainda não deu resultado.

bacana :lol:

 

qual o teu problema com o IE ainda ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando aqui outra vez parece que resolveu o problema, acho que não dei reload no IE e não vi que tinha arrumado.

Só que retorna o erro headers already sent.

 

Só mais uma coisinha, como eu mando carregar uma pagina padrão dentro da div? :D

 

E inserir uma barra de carregamento?

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

da forma 'idiota':

$(document).ready(function(){

 $('#contentContent').load( 'pagina-padrao.html' );
$('#navHolder a').live('click',function(){

 $('#contentContent').load($(this).attr('href'));

 

 

 

 

da forma inteligente ?

 

deixa isso no html uai. Deixa a tua pagina padrao carregar usando html puro ou php.

 

=)

 

para a barra de carregamento, você não vai conseguir contar as porcentagens que qnto já carregou.

mas se trocar o .load() por $.ajax() vai conseguir exibir um .gif animado até que o conteudo venha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian, a forma que você faz no blog, não funciona perfeitamente pra mim.

 

A minha programação é includes e utiliza o jquery para exibição, dentro da div "content" tenho que executar varias querys e para exibição tambem uso o jquery, só que retorna o erro "headers already sent by" pois o include fica no meio do html.

 

Enfim, existe outro meio de fazer isso?

 

Sobre, o "$.ajax()", eu carrego o gif entre () ?

 

PS.: Link para o sistema

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites
só que retorna o erro "headers already sent by" pois o include fica no meio do html.
isso é por outro motivo.

 

Erro de php, nada a ver com javascript.

 

 

 

 

Sobre, o "$.ajax()", eu carrego o gif entre () ?

dá uma olhada na documentação:

 

 

você vai carregar o gif, assim que o click for disparado, e remover ele no success do $.ajax().

Tão simples qnto isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vou procurar e montar o código, assim que pronto edito aqui pra quem precisar.

 

 

Mas sobre o erro do php, não seria errado enviar headers outra vez? Devo estar errado, mas isso não seria uma "gambiarra"?

 

Estou procurando bastante, mas parece que esse é o unico meio mesmo.

 

Pra quem precisar achei uma material interessante (http://www.maujor.com/blog/2009/02/03/requisicao-ajax-com-o-metodo-load-da-jquery/)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas sobre o erro do php, não seria errado enviar headers outra vez? Devo estar errado, mas isso não seria uma "gambiarra"?

sim, é errado enviar headers depois de outputs.

 

mas ajax por si só não faz isso. Esse erro é isolado do processo.

Mostre o erro, e as linhas que ele aponta, ai lhe explico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, para explicar melhor:

 

Warning: Cannot modify header information - headers already sent by (output stared at /home/radioventilador/www/page.php:1) in /home/radioventilador/www/page.php on line 26

 

Linha 26:

header ('Content-type: text/html; charset=iso-8859-1');

 

Código Inteiro:

<?php
header ('Content-type: text/html; charset=iso-8859-1');
include('includes/incl.all.php');
$pagina = (isset($_GET["route"]) ? $_GET["route"] : "home");
$pagina = str_replace('.','/',$pagina);
$arquivo = "paginas/{$pagina}.php";
if (file_exists($arquivo) == true) { include($arquivo);} else { include ("paginas/erro.php"); 
}
?>	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abra no teu editor, e salve o documento em Latin ISO

 

aparentemente atualmente está em UTF8 COM BOM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, uso o Notepad++ e não tem esse charset.

 

Meu documento está codificado em ANSI.

 

 

Obrigado, Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não dá pra editar meu post..

 

Bom, a solução que encontrei foi usar a função uft8_encode (caso use php)

 

Exemplo pra quem precisa:

 

<?php
$var = 'Johnson é um dos músicos mais'
echo $var; //Com load do jquery irá imprimir "Johnson � um dos m�sicos mais"
echo uft8_encode($var); //Resultado Johnson é um dos músicos mais
?>

Vi alguns caracteres que ainda assim saiu "bugado", mas acho que essa solução é o suficiente pro meu problema.

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.